2012-07-14 3 views
-3

저는 C#을 처음 사용하고 Visual Studio 2010을 실행하는 기본 프로그램을 만들었습니다. 창이 닫히면 프로그램이 중지됩니다. 그러나 IDE가 편집 모드로 돌아 가기까지 몇 초의 지연이 있습니다. 창이 닫히면 프로그램을 즉시 종료 할 수 있습니까?창이 닫힐 때 프로그램을 즉시 종료하는 방법

private void button1_Click(object sender, EventArgs e){ 
    While (Visible) { 
     for (int c = 0; c < 254) { 
      this.BackColor = Color.FromArgb(c, 255 - c, c); 
      Application.DoEvents(); 
      System.Threading.Thread.Sleep(3); 
     } 
     for (int c = 254; c >= 0) { 
      this.BackColor = Color.FromArgb(c, 255 - c, c); 
      Application.DoEvents(); 
      System.Threading.Thread.Sleep(3); 
     } 
    } 
} 

"System.Threading.Thread.Sleep (3);" 하지만 루프에서 여전히 문제를 해결하는 데 도움이되지 않았다. 나는 또한 이것을 여러 대의 기계에서 재현 할 수 있었다. 왜 이런 일이 일어날 수 있겠습니까?

+0

당신이 말하는 지연은 드문 일이 아닙니다. 당신이 성취하고자하는 것을 설명 할 수 있습니까? 왜 지연을 줄이려고합니까? – Mendhak

+0

루프가 실행되는 동안 어디 있습니까? 그리고 왜? –

+4

중첩 된 for() 루프가 완료 될 때까지 프로그램을 중지 할 수 없습니다. 위험한 코드를 작성 중이므로 winforms 프로그래밍에 대한 책을 읽어보십시오. –

답변

0

지연은 while 루프가 Visible이 여전히 참인지를 확인하기 전에 for 루프를 완료해야하기 때문에 발생합니다. 나는 각각의 for 루프에서 조건 테스트에 & & Visible == true을 추가하여 문제를 해결할 수있었습니다. 그런 식으로 Visible이 false가되면 루프가 끝납니다.

0

이 시도 :

Application.Exit(); 

나는 빠른 방법이 있다는 것을 의심한다.

+0

당신에게 'ERROR_SUCCESS'을 가져다 준 사람들로부터 : ['Environment.FailFast'] (http://msdn.microsoft.com/en-us/library/ms131100.aspx) – HABO

-1

Ctrl으로 프로그램을 실행하기 만하면됩니다. + F5 것은

0

실행중인 응용 프로그램 (형태 활성 상관없이) 사용 닫으려면

System.Environment.Exit(); 

을 그리고 당신은 양식으로 onClose 이벤트에이를 추가 할 수 있습니다

1

때 비주얼 Studio는 프록시 응용 프로그램을 통해 프로그램을 실행하는 프로그램을 디버깅합니다. 프로그램이 종료 된 후에도 프록시는 멈춰야하고 Visual Studio는 다시 편집 모드로 돌아 가야합니다. 이 전환은 즉각적인 것이 아니며 지연 현상 일 가능성이 큽니다.

릴리스 모드에서 프로그램을 빌드하고 디버깅하지 않고 실행할 수 있습니다. 그런 다음 신속하게 종료 할 수 있어야합니다.

관련 문제