2012-12-10 4 views
7

質問の別の側面は次のとおりです。バックグラウンドワーカーをコーディングするときにフォームが閉じられる可能性を処理する必要がありますか?フォームを閉じると、まだ実行中のバックグラウンドワーカーはどうなりますか?

たとえば、バックグラウンドワーカーでSQLクエリ(取り消し不可能)を実行し、カレンダーコントロールで日付を一致させてクエリから返された日付と一致するようにしたコードがあります。

私はこのような状況でバックグラウンドワーカーが何をするように設計されているのだろうか? - RunWorkerCompleteイベントは発生しませんか? - それはもうウィンドウではないので、RunWorkerComplete関数呼び出しでダイアログへの呼び出しを無視しますか?

答えて

7

閉じているフォームが主フォーム(つまり唯一のフォーム)の場合、バックグラウンドワーカースレッドは自動的にアプリケーションの終了とともに閉じます。

メインフォームではない場合、バックグラウンドスレッドは実行され続けます。この場合は、フォームの終了時に手動でバックグラウンドスレッドを中止する必要があります

関連する問題