2010-09-17 3 views
1

У меня есть приложение WinForm, и когда оно открыто, и я пытаюсь перезагрузить компьютер, мой компьютер просто зависает и не перезапускается. Я должен фактически закрыть приложение WinForm, а затем перезагрузиться, и мой компьютер перезапустится.Приложение WinForm предотвращает перезапуск машины?

Что делать, чтобы решить эту проблему?

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     if (!BoolShouldThisClose) 
     { 
      e.Cancel = true; 
      this.Visible = false; 
     } 
    } 
+0

Вы вручную обрабатываете события закрытия приложения winform. Но даже если это так, я считаю, что система должна была убить процесс. – loxxy

+1

Каков процесс/работа приложения. Я думаю, мы сможем помочь, если вы можете поделиться с нами более подробной информацией о приложении. – loxxy

+0

На самом деле, теперь, когда вы упомянули об этом, я знаю. Я хочу минимизировать свою форму в системном лотке, а не закрывать ее при нажатии «X». Так что да, не уверен, как я буду работать вокруг этого, когда мой компьютер хочет закрыть приложение .... – sooprise

ответ

1

Обязательно обратите внимание на CloseReason, чтобы не блокировать Windows, пытающуюся закрыть форму. Пример:

protected override void OnFormClosing(FormClosingEventArgs e) { 
     if (e.CloseReason == CloseReason.UserClosing) { 
      this.Hide(); 
      e.Cancel = true; 
     } 
     else base.OnFormClosing(e); 
    } 
+0

У меня есть что-то вроде этого, поэтому он должен блокировать закрытие. Как я могу обойти это? – sooprise

+0

Я считаю, что это не совсем так. Я не могу догадаться, опубликовать фрагмент кода в вашем вопросе. –

+0

Я положил его туда – sooprise

0

У вас есть темы в вашем приложении и есть они? Если это так, убедитесь, что они настроены на IsBackground = true.

+0

У фоновых работников уже есть IsBackground = true? – sooprise

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