ウィンドウが更新ウィンドウUIの背景ワーカーを初期化すると、異常またはデッドロックに遭遇することなくウィンドウを閉じます。この問題は、ウィンドウの終了事件でバックグラウンドワーカーを止めようとするときに直面した課題を強調しています。
質問:
bgWorker.CancelAsync()
ハンドルクロージェベントでは、バックグラウンドワーカーが完了するのを待っています。 Invoke()
ObjectDisposedException
Invoke()
a ロゴを定義して、ユーザーの閉じたリクエストを追跡します。 カバーで、バックグラウンドワーカーが忙しいかどうかを確認してください。
忙しい場合は、
をtrueに設定し、バックグラウンドワーカーをキャンセルし、closePending
バックグラウンドワーカーのイベント処理プログラムでは、OnFormClosing
操作をオフにした後、closePending
e.Cancel = true
サンプルコード:RunWorkerCompleted
この方法を使用して、バックグラウンドワーカーがUIを積極的に更新している場合でも、ウィンドウは異常またはデッドロックなしでエレガントにすることもできます。 closePending
以上がアクティブなバックグラウンドワーカーでフォームを優雅に閉じる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。