2010-10-07 90 views
3

我有开始在系统启动在托盘这个C#应用程序,我与它下面的问题,只有在Windows XPC#系统停止托盘应用

,而应用程序是我不能重新启动PC运行。如果我使用file> exit,它会停止,然后我可以重新启动。但如果我尝试与应用程序重新开放,它只是不会做它

我试图在主窗口的构造函数添加此,说不上来,如果它的正确的事情:

Application.ApplicationExit += new EventHandler(this.OnApplicationExit); 

和OnApplicationExit函数做的应用程序的关闭程序..但是这并没有帮助

任何想法?

+0

这很可能是因为GUI线程忙于做某事。你在申请中做什么? – Aliostad 2010-10-07 12:23:28

+0

你如何开始你的申请?通过命令提示符或通过UI或其他东西? – Shekhar 2010-10-07 12:24:26

+0

@Joey:我会避免说你应该使用TerminateProcess。如果你真的必须这样做,那么你应该只使用这种最后的手段,因为它不允许这个过程以有序的方式关闭。 – 2010-10-07 12:30:50

回答

4

您是否有FormClosing事件处理程序在某处执行类似e.Cancel = true;的事情?

如果是这样,在关闭原因将其更改为先看看,以决定是否应该取消或不作为:

if(e.CloseReason != WindowsShutDown) 
    e.Cancel = true; 

有可能是其他CloseReasons,你也不应该取消关闭所以可能是值得的看MSDN的。

+0

这似乎解决了我的问题。我永远不会想象我的应用程序可能会阻止整个系统。谢谢! – 2010-10-07 12:51:05

1

如果您在出口处理程序中的某处出现Cancel = true,我已经看到过这种情况。