2012-01-27 6 views
0

私は、1つのdllで2つのクラスに分かれていくつかのメソッドを呼び出すWindowsフォームを持っています。クラスのステータスを表示

フォームでステータスの更新を表示する、つまり、クエリの進行状況をラベルに表示します。

dllで2つの異なるクラスのメソッドの状態をどのように追跡しますか?

ありがとうございます!以下は

はサンプルDLLコードを使用すると、BackgroundWorkerをしたいようですね...

public class ClassA 
{ 

    private string ProgressStatus 
    private void SetStatusText(string currentStatus) 
    { 
     progressStatus = currentStatus; 
    } 

    public void ReportRequest() 
    { 
     SetStatusText("Begin Process..."); // update status 

    SetStatusText("Getting Dates..."); // update status 

     // get dates 
    DatesClass myDates = new DatesClass() 
     datesOK = myDates.GetDates(); 

     if (datesOK) 
     { 
    SetStatusText("Running Request..."); 
    RunFinalRequest(); 
     } 
    } 
} 


public internal class ClassB 
{ 

    private string ProgressStatus 
    private void SetStatusText(string currentStatus) 
    { 
     progressStatus = currentStatus; 
    } 


    public string GetDates() 
    { 

    SetStatusText("Loading Dates..."); // update status 

      LoadDates(); 

      return // return sql query value 
    } 

    private void LoadDates() 
    { 
    // sql query... 
    SetStatusText("Run Query..."); 
    } 
} 
+0

'クラスのステータス 'よりもメソッド実行のステータスが必要だと思っています – sll

答えて

1

です。 2つのバックグラウンドワーカークラスを作成し、それらのメソッドを実行させます。 ProgressChangedイベントを使用して、進行状況を元のスレッドに戻すことができます。

+0

だから、DLLの各クラスにBackGroundWorkerがありますか? – K09

+0

あなたの進歩を「労働者」として報告するあなたの2つのクラスを考えてみましょう。あなたのアプリケーションには2人のバックグラウンドワーカーがあり、各ワーカーは1人です。あなたのワーカーはいつでも進捗状況を報告することができ、進捗報告があることをUIスレッドに通知します。それはそれをより明確にするか? –

+0

こんにちは、私は少し混乱しています。これの簡単な例?ありがとう! – K09

関連する問題