我有这个循环作为进程连续运行,以检查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