我想爲全班授課。關鍵是允許來自外部類「backgroundWorker」的調用方法通過它的所有方法(ExternalClass.Run();)調用ExternalClass.Method2(); ExternalClass.Method3();等等,並且它們都需要發送幾個進度報告看起來效率不高,必須不斷通過代理C#將代理人提供給某個班級
我試着初始化全局委託實例,並將其設置爲等於Run()中傳遞的實例;然後爲每個方法有提供給它,但我給出一個錯誤,一個空的對象不能被隱式轉換。
感謝!
我不能顯示我有,因爲我不工作的代碼目前與我(它在我的筆記本電腦上),但我會盡力現在更好地解釋。僞代碼:
class form1 : form {
backgroundWorker_doWork()
{
Class2.Run();
}
backgroundWorker_OnProgressChange()
{
// do this
}
}
class class2{
Run(){
OtherMethod();ThirdMethod();
}
OtherMethod(){ //need to call backgroundWorker.ReportProcess(int, string)}
ThirdMethod(){ //need to call backgroundWorker.ReportProcess(int, string)}
}
我真的不希望有通過它的每一個時間點,我想以某種方式把它傳遞給CLASS2
的描述不明確。請顯示您的嘗試代碼。 – 2009-08-20 20:13:01
BackgroundWorker的ReportProgress()方法現在是否可以實現您的目標? – jim 2009-08-20 20:13:44