BackgroundWorker は、この仕事に適したツールだと思います。BackgroundWorker を作成するときは、イベントのイベント ハンドラーを指定しますDoWork
。オブジェクトには、を呼び出して BackgroundWorker を開始したときに渡されるオブジェクトであるというDoWorkEventArgs
プロパティがあります。渡す必要があるパラメーターを処理するためにヘルパー クラスを作成する必要がある場合がありますが、それは非常に簡単なはずです。何かのようなものArguments
RunWorkerAsync
ヘルパー クラス:
public class WorkerArgs
{
public string Arg1 {get;set;}
public object Arg2 {get;set;}
public int Arg3 {get;set;}
}
バックグラウンド ワーカー:
BackgroundWorker worker = new BackgroundWorker();
// Hook up DoWork event handler
worker.DoWork += (sender, e) => {
WorkerArgs args = e.Arguments as WorkerArgs;
// ... Do the rest of your background work
};
// Create arguments to pass to BackgroundWorker
WorkerArgs myWorkerArgs = new WorkerArgs {Arg1 = "Foo", Arg2 = new Object(), Arg3 = 123 };
// Start BackgroundWorker with arguments
worker.RunWorkerAsync(myWorkerArgs);
あなたの場合、ヘルパー クラス オブジェクトに UI コントロールの値を入力します。