关于 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(); //这句能关闭多线程中开启的自身线程关闭后不会停留在主进程。     

      }

转载于:https://www.cnblogs.com/ihadream/archive/2013/02/23/2923812.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值