У меня есть TextBox, который сообщает статус запущенного приложения (скажем, блокнот). Если работает блокнот Text of TextBox работает и не работает для другого случая.Update View автоматически
public string ProcessStatus
{
get
{
IsProcessRunning("Notepad.exe")
return "Running";
return "Not Running";
}
}
Теперь проблема в том, что просмотр обновляется только один раз при запуске. В то время, если блокнот работает, он работает нормально. Теперь давайте предположим, что я запустил приложение, и блокнот не был запущен, но TextBox говорит, что он не работает. Теперь я запускаю блокнот, теперь приложение все еще говорит, что не работает, поскольку приложение не обновило представление. Если я вызываю уведомление об измененном событии свойства для TextBox, тогда он скажет, что он работает. Но я хочу, чтобы TextBox обновлялся автоматически.
Единственное решение, о котором я сейчас думаю, это то, что я запускаю фоновый процесс, который продолжает обновляться ProcessStatus
. Но правильно ли это? Есть ли лучший способ? Что-то вроде DirectoryWatcher для процессов?
Я думаю, что виновником является код вызова. Поток пользовательского интерфейса, вероятно, заблокирован вашим механизмом опроса или чем-то еще. –
http://stackoverflow.com/questions/8455873/how-to-detect-a-process-start-end-using-c-sharp-in-windows и http://stackoverflow.com/questions/1986249/c -sharp-процесс-монитор –