コンソールアプリケーションの終了方法
仕事でちょっとしたコンソールアプリケーションをC#で作成。
タスクスケジューラで起動、常駐してファイルを監視するモノ。
で、それを定時に再起動、またはメンテ時に停止する処理を加えたい。
外部プロセスからの入力で停止処理を行うようにするには。
- 標準入力で待ち受け、外部から入力
- 名前付きパイプで
- Socket で
- Mutex, Semaphore で
今回はMutexを選択。こんな感じ。
Console Application with Kill switch
Semaphoreで実装した理由はそのうち。。。
実装しながら「これ、Windowsサービスでいいんじゃね」と自問。