關於 WPF 在主窗口中用多線程打開的子窗口關閉后進程還存在,這個問的題的解決方法。


關於 WPF 在主窗口中用多線程打開的子窗口關閉后進程還存在,這個問的題的解決方法。

 this.Dispatcher.Thread.Abort()

下面是例子代碼主窗口:

void method()

    {

         Thread newWindowThread = new Thread(new ParameterizedThreadStart(showNewWindow));

         newWindowThread.SetApartmentState(ApartmentState.STA);

         newWindowThread.Start(msgClass);

    }

 void showNewWindow(object msgClass)    

    {

            MsgClass mc = msgClass as MsgClass;

            WTalk wt = new WTalk(mc, server);    //New 子窗口

            wt.Show();

            System.Windows.Threading.Dispatcher.Run();   //這個必須有不然窗口一閃而過    

    }

子窗口代碼:

    private void btnCloss_Click(object sender, RoutedEventArgs e)  

      {

         //  this.Close();  //用這個在所有窗口關閉后,在Windows任務管理器中還會看到程序的進程。

           this.Dispatcher.Thread.Abort(); //這句能關閉多線程中開啟的自身線程關閉后不會停留在主進程。     

      }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM