私のテストでCancelAsync
は、 が呼び出されると、のメソッドがBackgroundWorker
優先されなくなるようです。例外なく実行されますが、実際には何も実行されなくなります。私は次のようなものを想像しています:ReportProgress
ProgressChanged
ReportProgress
ProgressChanged
<code>
if (CancellationPending) return;
</code>
でProgressChanged
。
他の誰かがこの主張を確認または反論できますか?
これが良いアイデアのように思える理由は理解できますが、コマンド オブジェクトは一度CancelAsync
呼び出されるとそれ以上ユーザー通知を行わないと想定しているため、これは誤りのようです。また、実際には、 を呼び出す前に、少なくとも常にキャンセルを確認する必要があることを意味しますReportProgress
。これはかなり不格好です。それでも、レースに対して絶対確実だとは思いません(スレッドの麻痺した;-)。