2012-06-18 5 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:

Если вы используете SessionEnding в форме Windows, чтобы обнаружить систему выхода из системы или перезагрузки, не детерминированный способ решить, будет ли событие закрытия огонь до этого события.

Поэтому вы не должны полагаться на это событие или каким-либо образом обрабатывать событие Closing для достижения ваших потребностей.

Обновление. Более важная вещь:

Консольные приложения не создают событие SessionEnding.

+0

Знаете ли вы, что это относится и к службам Windows? – Zulakis

Смежные вопросы