エレガントな処理ウィンドウが閉じられているときの背景作業スレッド
ウィンドウが背景作業スレッド(バックグラウンドワーカー)を初期化する場合、ウィンドウが閉じたときに正しくキャンセルすることが不可欠です。そうでなければ、異常または致命的な原因となる場合があります。
問題の説明
ウィンドウは背景ワーカーをインスタンス化し、メインスレッドでテキストボックスを更新しました。ウィンドウの閉鎖イベントがトリガーされると、バックグラウンドワーカーは単純にキャンセルされ、ObjectDisopexceptionはvish()コールで異常になります。代わりに、バックグラウンドワーカーが閉会のインシデントで完了するのを待つと、Invoke()操作がブロックされているため、死んだロックが発生します。
solution この問題を解決するために、バックグラウンドワーカーがまだ実行されている場合、フォームクロージングイベントをキャンセルする必要があります。これは、次の手順を通じて実装できますウィンドウ内のonformclosingイベントを扱います。
バックグラウンドワーカーが忙しいかどうかを確認してください。もしそうなら、それをキャンセルします。ユーザーのリクエストが閉じられることを示すために、クローディングを設定します。
以上がフォームが閉じたときにバックグラウンドワーカーを優雅にシャットダウンするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。