C#コンソールアプリケーションがいつ停止するかを知るにはどうすればよいですか?何かイベントなどはありますか?
ありがとう!
C#コンソールアプリケーションがいつ停止するかを知るにはどうすればよいですか?何かイベントなどはありますか?
ありがとう!
アプリケーションドメインのProcessExitイベントを使用する
class Program
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
}
static void CurrentDomain_ProcessExit(object sender, EventArgs e)
{
Console.WriteLine("exit");
}
}
イベントの処理System.Console.CancelKeyPress
が役立つ場合があります。
MSDNは、このイベントの処理方法と、このイベントの処理中に注意する必要のある他の事項について説明しています。抜粋:
このイベントは、System.ConsoleCancelEventHandlerおよびSystem.ConsoleCancelEventArgsと組み合わせて使用されます。CancelKeyPressイベントを使用すると、コンソールアプリケーションがCTRL + C信号をインターセプトできるため、アプリケーションは実行を続行するか終了するかを決定できます。
このイベントを使用して、アプリケーションがCTRL+C信号にどのように応答するかを明示的に制御します。アプリケーションに単純な要件がある場合は、このイベントの代わりにTreatControlCAsInputプロパティを使用できます。
このイベントのイベントハンドラーは、スレッドプールスレッドで実行されます。