WPF GUI 애플리케이션을 닫는 올바른 방법:Get Current Process().Kill() , Environment.exit(0) 또는 this.셧다운()
GUI 데스크톱 기반의 WPF 4.0(C#.Net 4.0) 프로그램은 SQL Server 데이터베이스와 연동됩니다.응용 프로그램을 실행할 때마다 ADO를 통해 SQL Server에 대한 연결이 생성됩니다.NET Entity Framework와 SQL Server에 연결할 수 없는 경우 예외를 발생시키고 다음을 표시합니다.MessageBox
알림과 함께.
이제 사용자가 이 메시지 애플리케이션을 읽은 후 종료했으면 합니다.세 가지 방법을 찾았습니다.
Process.GetCurrentProcess().Kill();
또는
this.Shutdown(); // Application.Current.Shutdown()
또는
System.Environment.Exit(0);
Windows 태스크 매니저에서 어플리케이션을 닫고 어플리케이션 프로세스를 종료하는 등 모두 정상적으로 동작하며 필요한 작업을 수행합니다.
질문:
그들의 차이점은 무엇입니까?
어느 쪽이 애플리케이션을 빨리 닫습니까?
애플리케이션을 닫으려면 어떤 방법을 사용해야 합니까?
이
Application.Current.Shutdown()
그리고.this.Shutdown()
같은 방법으로 애플리케이션을 종료할 수 있습니까?또는 WPF GUI 애플리케이션을 종료하는 다른 보다 적절한 방법이 있을까요?
Application.Exit()
이 에러가 표시되므로 동작하지 않습니다.
이벤트 '
System.Windows.Application.Exit
'는 += 또는 -=의 왼쪽에만 표시될 수 있습니다.
Application.Current.Shutdown()
는, 애플리케이션을 셧다운 하는 적절한 방법입니다.일반적으로는 종료 이벤트를 발생시키기 때문에 사용자가 처리할 수 있는 추가 정보를 제공합니다.
Process.GetCurrentProcess().Kill()
응용 프로그램을 가능한 한 빨리 종료하고 싶을 때 사용해야 합니다.자세한 내용은 이쪽입니다.
이러한 방법의 특성은 완전히 다릅니다.
Shutdown()
일부 작업을 종료하기 위해 일시 중지할 수 있습니다.Kill()
응용 프로그램을 가능한 한 빨리 강제 종료합니다.
아마...Kill()
가장 빠른 방법이겠지만 이건 커널 패닉 같은 거예요
응용 프로그램을 사용합니다.현재.셧다운();
App.xaml에서 ShutdownMode="OnMainWindowClose" 추가
private void ExitMenu_Click(object sender, RoutedEventArgs e)
{
Application.Current.Shutdown();
}
@Damian Leszzzzynski - Vash의 답변에는 당신이 질문한 4가지 질문이 거의 포함되어 있습니다.에 대한 마지막 질문입니다.Application.Exit()
가입할 수 있는 이벤트이지 호출할 수 있는 메서드가 아닙니다.다음과 같이 사용해야 합니다.
Application.Current.Exit += CurrentOnExit;
//this.Exit += CurrentOnExit; would also work if you're in your main application class
...
private void CurrentOnExit(object sender, ExitEventArgs exitEventArgs)
{
//do some final stuff here before the app shuts down
}
언급URL : https://stackoverflow.com/questions/3880836/right-way-to-close-wpf-gui-application-getcurrentprocess-kill-environment
'it-source' 카테고리의 다른 글
Excel VBA의 OnClick (0) | 2023.04.16 |
---|---|
개별 스레드에 WPF 창을 만들고 표시하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
탭을 클릭하면 셸 초기화 문제가 발생합니다.getcwd의 문제점은 무엇입니까? (0) | 2023.04.16 |
브라우저별로 URL의 최대 길이는 몇 개입니까? (0) | 2023.04.16 |
Bash에서 문자열의 마지막 x자 액세스 (0) | 2023.04.16 |