2012-01-27 41 views
0

我有一個Windows窗體,在單個dll中的2個獨立的類中調用一些方法。類的顯示狀態

在窗體中,我想顯示狀態更新,即在標籤中顯示查詢的進度。

如何跟蹤dll中2個不同類的方法的狀態?

謝謝!

下面是示例DLL代碼...

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 2012-01-27 16:42:20

回答

1

這聽起來像你想有一個BackgroundWorker。你會創建兩個後臺工作者類並讓他們運行你的方法。然後,您可以使用ProgressChanged事件將進度報告回您的原始線索。

+0

,所以我在每個類的dll中都有一個BackGroundWorker? – K09 2012-01-27 16:57:57

+0

想想你的兩個班級,他們報告他們的進步爲「工人」。您的應用程序中有兩名後臺工作人員,每名工作人員一名。您的工作人員隨後可以隨時報告他們的進度,UI線程會通知他們有進展報告。這是否更清晰? – 2012-01-27 17:01:54

+0

嗨,我有點困惑。任何這樣的簡單例子?謝謝! – K09 2012-01-27 17:18:27