私はアプリケーションで本当に奇妙なバグを見つけようとしていますが、探しているうちにBackgroundWorkerがどのように動作するのか疑問に思っています。実行する前にBackgroundWorkerを破棄しましたか?
私はこのようなコードがある場合:
var bg = new BackgroundWorker();
bg.DoWork += MyHandler;
bg.RunWorkerAsync
を実行したことがないだろうとしたとにかくありますか?私が心に留めていることは、BGが実際に実行する前に、範囲外になり、BGによって主張されていることです。
それは起こりますか?
Dispose()を明示的に呼び出す必要があります。ガベージコレクションもできません。あなたのMyHandler()メソッドは、* sender *引数を通じてBGWオブジェクトへの暗黙の参照を持ちます。例外をチェックするのを忘れるのはよくある間違いです。 –