문제

난 전화하고있어 Application.Current.Shutdown() XAML Windows로 바인딩 된 클래스에서 ObjectDataProvider, 그러나 응용 프로그램은 닫히지 않습니다. 누구든지 이유를 이해하도록 도와 줄 수 있습니까? 메인 창을 닫은 후 응용 프로그램이 완전히 닫히지 않으며 작업 관리자의 프로세스 목록에서 사라지지 않습니다.

도움이 되었습니까?

해결책

배경 처리를 수행 할 스레드를 만들었습니까? 가지고 있다면, 설정하십시오 .IsBackground 자산의 속성, 또는 앱을 계속 실행할 수 있습니다.

다른 팁

노력하다 Environment.Exit(0) 대신에

이것을 추가하는 것을 잊지 마십시오 :

private void Window_Closed(object sender, EventArgs e)
{
  Application.Current.Shutdown();
}

도움이 되었기를 바랍니다.

응용 프로그램에 여러 개의 창 또는 대화 상자가있는 경우 각각을 명시 적으로 닫아야 할 수도 있습니다.

대화 상자를 닫습니다.

_mydialog.close ();

모든 창을 닫으십시오 :

foreach(var window in Application.Current.Windows.ToList())
{
    window.Close();
}

같은 문제가 있었는데 응용 프로그램이 닫혀 있었지만 신청 프로세스가 중지되지 않습니다.

제 경우에는 배경 작업자로부터 창을 열었습니다 (아래 코드)

BackgroundWorker BG = new BackgroundWorker();
BG.DoWork += new DoWorkEventHandler(BG_DoWork);
StockMinWindow MinWindow = new StockMinWindow(null); -------- this is the problem 
BG.RunWorkerAsync();

배경 작업자가 문제가되지 않는 것처럼 보이지만 라인을 지우면 응용 프로그램이 올바르게 닫혔습니다.

배경 워크에서 창을 열면 주요 스레드 (아래 코드)를 사용합니다.

 View.Dispatcher.BeginInvoke(new Action(delegate()
 {
   StockMinWindow MinWindow = new StockMinWindow(StockMinList);
   MinWindow.Owner = View;
   MinWindow.ShowDialog();
 }));

도움이되기를 바랍니다.

메인 창이 닫혀 있더라도 응용 프로그램이 종료되지 않는 문제가있었습니다. Close () 대신 스플래시 화면에서 hide ()를 수행 한 것으로 나타 났으므로 응용 프로그램을 살리기 위해 여전히 백그라운드에서 숨어있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top