問題は、プロセスを途中で終了するにはどうすればよいかということです。現在の処理を停止するキャンセル ボタンを作成する必要があります。
以下の行を使用することを考えました...
if ((worker.CancellationPending == true))
{
e.Cancel = true;
}
...そして内部に AllocateTrades2 メソッドをカプセル化しますが、それは別の場所から Cancel Flag を呼び出さなければならないことを意味し、メソッドの処理が完了した後にのみそれをチェックします。
また、ユーザーが同じ操作をもう一度クリックすると、ワーカーが使用されているという例外がスローされるため、何もしていないふりをすることはできません。
私がやりたいことの例:
public void bw_DoWork(object sender, DoWorkEventArgs e)
{
AllocateTrades2();
}
public void AllocateTrades()
{
Method1();
CheckTerminate();
Method2();
CheckTerminate();
//Click the cancel button in the UI during method 3 processing
Method3();
CheckTerminate();
}
そして、CheckTerminate() はすべての処理を停止し、将来の呼び出しに使用できるようにします。私がやろうとしていることは可能ですか?