2011-10-20 7 views
-1

私はすべての目的と目的のために本当に基本的なGUIを持っています。リストビュー、HTMLフォーム、それは本当にそれです。 - 「リアルタイム」というチェックボックスをクリックしC#:定期的にGUIをバックグラウンドタスクに基づいて更新する

1:

は、私は、ユーザーが次の行動能力を持っていると思います。クリックすると、バックグラウンドスレッドは10秒に1回実行されます。

2 - 新しいファイルが作成されている(これは簡単ですが、新しいファイルを観察するために)私はメインのGUIに警告を表示します。今のところどこに表示されているかは任意です(たとえば、ラベルなど)。

主な問題は、マルチスレッドの例でこれを行う方法を理解できないことです。私の目標は、マルチスレッドとまったく同じです。タスク1をロックせずにタスク1とタスク2を実行します。意味は、更新チェックが実行されている間、ユーザーはバックグラウンドで何も起こっていないかのようにGUIと対話できます。

もっと詳しくお答えするには、私にお知らせください。

ありがとうございます!

FileCreated_EventFileEventArgsが適切に宣言されている
// Just detected that that a new file has been created 
    if (this.FileCreated_Event != null) 
    { 
     this.FileCreate_Event(this, new FileEventArgs(newFileName)); 
    } 

:何かが変わったのUIを伝えるために、スレッドから

+0

私が追加したHTML、ASP.NETと交換してください。 –

答えて

1

使用イベント。

this.fileChecker.FileCreated_Event += this.FileCreated_Event; 

と::

は、次にUIには、次のあなたが持っているイベントを受信したときに actionはあなたがやりたいものです

private void FileCreated_Event(object sender, TrackStatusEventArgs e) 
    { 
     if ((sender as Control).InvokeRequired) 
     { 
      (sender as Control).Invoke(action); 
     } 
     else 
     { 
      action(); 
     } 
    } 

+0

@AustinSalonen - 申し訳ありません - 私はそれを完了する前に "入力"して回答を投稿することができました。 – ChrisF

+0

完了していないようです... –

+0

UIがASP.NETの場合はどうなりますか?その疑問からは不明だと思われる。 –

0

お試しthisチュートリアル最後にはスレッドを使用できると確信しています。あなたは気をつけなければなりません。なぜなら、それらのスレッドを管理しなければならないので、これは難しい作業です。私は複数のスレッドをデバッグするのを好むプログラマーに会ったことはありません...

関連する問題