ホームページ > バックエンド開発 > C++ > C#MultithreadedアプリケーションでコンソールExitイベントをキャプチャするにはどうすればよいですか?

C#MultithreadedアプリケーションでコンソールExitイベントをキャプチャするにはどうすればよいですか?

DDD
リリース: 2025-01-28 09:56:14
オリジナル
318 人が閲覧しました

How Can I Capture Console Exit Events in C# Multithreaded Applications?

複数のスレッドを使用したC#でのコンソールアプリケーション終了の管理

マルチスレッドC#コンソールアプリケーションでは、クリーンプログラムのシャットダウンがリソース管理に重要であることを確認してください。 残念ながら、.NETはコンソール出口処理のための直接イベントを提供していません。 これには、代替の方法が必要です。

1つの効果的なソリューションがWindows API関数をレバレッジします

これにより、特定のコンソール制御信号によってトリガーされるカスタムハンドラー関数の登録が可能になります。 SetConsoleCtrlHandlerここに実装の実装があります:DllImport

このコードスニペットは、

using System;
using System.Runtime.InteropServices;

// ... (rest of the code remains the same)
ログイン後にコピー
、および

をキャプチャするためにSetConsoleCtrlHandlerを利用する方法を示しています。 これらのイベントのいずれかが発生したときにCTRL_C_EVENT関数が実行されます。 CTRL_LOGOFF_EVENTCTRL_SHUTDOWN_EVENT重要な考慮事項:CTRL_CLOSE_EVENTこの方法の信頼性は、関連する議論に記載されているように、Windows 7で損なわれる可能性があります。 さまざまなWindowsバージョンにわたる最適な互換性には、さらなる調査が必要になる場合があります。

以上がC#MultithreadedアプリケーションでコンソールExitイベントをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート