2012-08-23 31 views
0

是否可以設置時間限制的過程?我意識到這可以使用多線程完成。例如,我可以使用一個執行該進程的線程和另一個線程在一段時間後殺死它,但是沒有更簡單的解決方案嗎?時限過程

回答

1

沒有,因爲這種解決辦法將不知道如何時限過後停止進程。直接殺死這個過程是潛在的危險事情,所以在一般情況下,過程需要合作才能實現正常關機。

這真的不是那麼難成立一個計時器,並有一個表示計時器已經過去的情況你的主循環檢查。

+0

如果我們談論'Process'而不是'Thread',他[可以這樣做。(http://stackoverflow.com/a/3522035/39106) –

+0

我的意思是不殺的過程可執行文件本身,但如果此進程已運行超過一秒鐘,則會終止另一個程序進程。 – seeker

+0

@FilipEkberg:我不認爲OP意味着一個系統過程。 –

0

除非正在執行可以定期檢查本身並退出擺好,沒有線程。在大多數情況下,您不能相信正在執行的線程來執行此操作。

0

如果啓動過程中,你可以也用的schtasks安排它/創建。

這會給你你需要的幾乎是免費的(幾乎是因爲你的啓動過程是一個略微複雜一點,世上沒有免費的午餐)

SCHTASKS /Create /SC DAILY /TN gaming /TR c:\freecell /ST 12:00 /ET 14:00 /K 

Knowledgebase article on schtasks

1

你可以產卵的過程是什麼,等一段時間,然後殺了它。

var proc = Process.Start("myproc.exe"); 
bool graceful = proc.WaitForExit(10000); //Wait 10 secs. 
if (!graceful) 
{ 
    proc.Kill(); 
}