3
A
回答
2
這是做實際監測的方法。就動態配置文件而言,產生這些監視器線程的主線程可以使用FileSystemWatcher
,http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx來監視帶有進程名稱的xml /文本文件。您可以將取消標記傳入函數,並在每次迭代中檢查標記是否被取消。
static Task MonitorProcessAsync(string process, Action<string> startAction, Action<string> exitAction)
{
return Task.Factory.StartNew(() =>
{
bool isProcessRunning = false;
while (true)
{
int count = Process.GetProcessesByName(process).Count();
if (count > 0 && !isProcessRunning)
{
startAction(process);
isProcessRunning = true;
}
else if (count == 0 && isProcessRunng)
{
exitAction(process);
isProcessRunning = false;
}
Thread.Sleep(1000);
}
});
}
例
Action<string> startAction = (process) => Console.WriteLine(process + " Started!");
Action<string> exitAction = (process) => Console.WriteLine(process + " Stopped!");
MonitorProcessAsync("notepad.exe", startAction, exitAction);
相關問題
- 1. 監視進程的啓動和關閉?
- 2. 啓動一個進程並監聽退出事件
- 3. 設計用於監視和重新啓動進程的監視進程
- 4. 如何監視啓動「dllhost.exe」的進程?
- 5. 在Perl中啓動的退出進程
- 6. 當失敗/退出時監控並重新啓動子進程
- 7. 多線程與監視器進入/退出,等待/脈衝,鎖
- 8. 在系統中監視進程啓動
- 9. 正確啓動多個TweetStream守護進程以進行監視Twitter的方式
- 10. 啓動遠程進程和監視器狀態
- 11. 如何使程序監視程序重新啓動它,如果它退出
- 12. Winforms應用程序中的多個監視器和啓動對象的位置
- 13. 在啓動時運行並監視redis和node.js進程
- 14. 當我啓動另一個進程時,程序突然退出
- 15. 啓動多個winforms後退出應用程序的方法?
- 16. C++:監視器和條件變量進程間
- 17. Estimote信號燈進入和退出監視
- 18. 監視進程
- 19. Bash句柄退出多個進程
- 20. Libgdx監聽器多次進入和退出火災
- 21. 啓動shell的多個進程
- 22. Powershell啓動進程創建新變量
- 23. 監控可控量程的變化?
- 24. 當退出時終止在xterm內啓動的所有進程
- 25. Mac上的C#啓動進程 - FFMPEG - 退出代碼1
- 26. 我可以讓JVM在退出時終止啓動的進程嗎?
- 27. Windows XP - 監視進程和重新啓動過程,如果它崩潰
- 28. 爲變量運行一個函數時監視器的變化?
- 29. 啓動程序和後來的Python腳本,其監視
- 30. wpf - 啓動進程並退出應用程序
對不起,我不得不重組我的問題,我必須同時監測啓動和進程退出。 – ron975
沒關係。我修改它來監視進程的開始和停止。它使用布爾值來表示進程的先前狀態,並根據當前計數來檢查它是否有機會,如果它執行了適當的開始或存在操作。 – Despertar