2010-10-07 96 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,我已經看到過這種情況。