我有這個循環作爲進程連續運行,以檢查mstsc.exe
是否正在運行。強制關閉進程
for (; ;)
{
System.Diagnostics.Process[] pname = System.Diagnostics.Process.GetProcessesByName("mstsc");
if (pname.Length != 0)
{
}
else
{
System.Diagnostics.Process.Start(@"mstsc.exe");
}
System.Threading.Thread.Sleep(3000);
}
問題是,在註銷,重新引導或關機時我得到了這個。
我試圖結束對Form_Closing或
Microsoft.Win32.SystemEvents.SessionEnded +=
new Microsoft.Win32.SessionEndedEventHandler(SystemEvents_SessionEnded);
,我仍然得到這個過程...
我怎麼可能迫使這個過程中正確地殺人?
一些嘗試是將一個布爾值,你可以從該環外改變。當你觸發表單時,將其更改爲false。 – Nomad101 2013-04-30 17:08:50
'我怎麼能強制這個過程正確地殺死。「...... Cyberdyne Systems在創建SkyNet時提出了完全相同的問題。 – 2013-04-30 17:10:17
這是我的理解,Thread.Sleep將不允許任何消息在當前線程處理'睡覺'時處理。您可能也對這篇文章感興趣:http://www.albahari.com/threading/ – 2013-04-30 17:12:51