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-to-a-backgroundworker-dowork?rq = 1 – mlg
@mlg既にその質問があります。提案を試しても動作しませんでした。だから、なぜ私は再びこの質問をしなければならなかったのですか? –