現在のウィンドウを閉じようとすると、次を使用します。
this.Close();
ウィンドウを正常に閉じます。ただし、バックグラウンドでは、ウィンドウの操作も実行されています。つまり、ウィンドウを閉じますが、for ループなどの操作を停止できません。プロセスのために動作し続けます。
ウィンドウを閉じると、GUI スレッドにその操作を実行するように求められます。ただし、Web リクエストなどの別のスレッドで実行されるプロセスや、その他の非同期操作は、独自のスレッドで実行されます。
別のスレッドでループを実行している場合、ウィンドウを閉じても終了しない可能性は十分にあります。
WPF はその操作の多くを非同期で実行するため、ウィンドウのコードを調べて、明示的な終了が必要なものがないかどうかを確認します。
さらに、ループを異常終了させるのは得策ではありません。ループを実行している場合は、ウィンドウを終了したときにループを停止するブレーク条件を配置します。
ライブラリにこのメカニズムが組み込まれているとは思えません。誤ってリリースされたリソースに関する問題を要求しています。代わりに、実行時間の長いプロセスにガードを追加します。
if(isClosing) break;
次に、イベント ハンドラで を設定isClosing
します。true
Closing