0
我正在嘗試使一個常規函數作爲匿名BackgroundWorker的DoWork事件運行。我遇到的問題是該方法根本沒有運行。目前的代碼,我有如下; -將方法傳遞給BackgroundWorker.DoEvent C#
public class Worker
{
BackgroundWorker worker;
public Worker(Func<bool> action)
{
worker = new BackgroundWorker();
worker.DoWork += (sender, e) => e.Result = action;
worker.RunWorkerCompleted += Worker_RunWorkerCompleted;
this.action = action;
}
private void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Console.WriteLine("Thread completed : "+ e.Result.ToString());
}
public void DoWork()
{
Console.WriteLine("worker thread: working...");
worker.RunWorkerAsync();
//Wait for worker to complete
do { } while (worker.IsBusy);
}
}
功能是通過這樣的: -
Worker workerObject = new Worker(new Func<bool>(() => methodThatReturnsBool(param1, param2)));
Thread workerThread = new Thread(workerObject.DoWork);
workerThread.Start();
怎麼可能通過該方法,並將它的後臺工作範圍內操作?
http://stackoverflow.com/questions/3475263/passing-a -method-a-backgroundworker-dowork?rq = 1 – mlg
@mlg已經看到了這個問題。嘗試了這些建議,但他們沒有工作。因此,爲什麼我不得不再次提出這個問題。 –