実行中のアプリケーションのステータスを伝える TextBox があります(メモ帳としましょう)。メモ帳が実行されている場合は TextBox のテキストが実行されており、それ以外の場合は実行されていません。
public string ProcessStatus
{
get
{
IsProcessRunning("Notepad.exe")
return "Running";
return "Not Running";
}
}
ここでの問題は、ビューが起動されたときにビューが一度だけ更新されることです。その際、メモ帳が起動していれば問題なく動作します。ここで、アプリケーションを実行し、メモ帳が実行されていないと仮定すると、TextBox は実行されていないと表示されます。ここでメモ帳を起動しますが、アプリケーションがビューを更新していないため、アプリケーションはまだ実行されていないと言っています。TextBox のプロパティ変更イベントの通知を呼び出すと、実行中と表示されます。しかし、ここで欲しいのは、TextBox が自動的に更新されることです。
私が今考えている唯一の解決策は、更新を続けるバックグラウンド プロセスを開始することProcessStatus
です。しかし、これは正しい方法ですか?もっと良い方法はありますか?プロセスの DirectoryWatcher のようなものですか?