2012-10-04 66 views
0

我在wpf窗口中使用多线程。在打开另一个wpf窗口之前销毁所有线程

我使用this.Close()关闭该窗口,并使用newWindow.Show().

代码打开另一扇窗:

// open new windows 
newWindow newWindow = new newWindow(); 
       this.Close(); 
       newWindow.Show(); 

// close window 
    private void OnClosed(object sender, EventArgs e) 
      { 
       // stop some events 
       d.StopEvents(); 
     } 

它将需要很长的时间才能达到StopEvents

如果我使用Environment.Exit(0);它会关闭应用程序,我不想那样。

谢谢。

+0

请您在该问题更加清晰冒充。 – Candide

+0

是的,我编辑了我的问题。 – Alvin

+0

你有没有考虑在'List '中跟踪你的线程并在其上调用'Abort'? – Candide

回答

3

你的线程在做什么?一个常见的模式是工作线程定期检查一个标志,看看他们是否需要关闭自己。对于每个线程来说,这要比另一个线程放弃它要安全得多。