WinFormフォームが閉じられた後にどのようにプロセスを終了させるか
WinFormのフォームが閉じる際にプロセスを終了するには、以下の手順を実行します。
- フォームが閉じられる前にロジックを処理するには、Closeイベントでデータの保存やリソースの解放などを行うコードを追加できます。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// 处理窗体关闭前的逻辑
// ...
}
- アプリケーションを終了する
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// 处理窗体关闭前的逻辑
// ...
// 结束进程
Application.Exit();
}
Application.Exit メソッドを呼び出した後も、まだ実行中のスレッドがあれば、それらのスレッドが終わるまでは実際にプロセスが終了しない場合があります。Application.Run メソッドの戻り値を使用して、まだ実行中のスレッドがあるかどうかを判断し、すべてのスレッドの終了を確認してからプロセスを終了することができます。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// 处理窗体关闭前的逻辑
// ...
// 结束进程
Application.Exit();
// 等待所有线程结束
while (Application.OpenForms.Count > 0)
{
Application.DoEvents();
}
}
上記手順で、WinForm ウィンドウの閉じ時にプロセスを終了できます。