0

我在 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); 它会关闭应用程序,我不希望这样。

谢谢。

4

2 回答 2

3

你的线程在做什么?一种常见的模式是工作线程定期检查标志以查看它们是否需要关闭自己。每个线程都这样做比另一个线程中止它要安全得多。

于 2012-10-04T16:25:32.907 回答
1

您可能还想考虑使用并行扩展 (TPL),因为这使得线程更容易,并且包含了诸如取消之类的概念。

.NET 4 取消框架

于 2012-10-04T20:08:28.783 回答