2012-06-18 119 views
0

這是我的C#代碼:SessionEndingEvent沒有得到所謂的

void main() 
    { 
     SystemEvents.SessionEnding += new SessionEndingEventHandler(SystemEvents_SessionEnding); 
    } 

    void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) 
    { 
     Console.WriteLine(e.Reason); 
    } 

不知何故,沒有輸出。任何想法爲什麼?

+0

如果其中一個答案可以解決您的問題,請隨時提出並接受答案 –

+0

我確實會這樣做。我的問題還沒有解決。我試圖使用這個應用程序是一個Windows服務。 – Zulakis

+0

好的!服務的行爲不像桌面應用程序。 –

回答

0

Accorind到remarks section in MSDN

如果您在Windows窗體使用SessionEnding檢測系統註銷或重啓,就決定關閉事件是否會在此事件之前沒有觸發確定的方式。

因此,您不應該依賴此事件或以某種方式處理Closing事件以實現您的需求。

更新。更重要的是:

控制檯應用程序不會引發SessionEnding事件。

+0

你知道這是否也適用於Windows服務? – Zulakis