关闭窗口及其在WPF中的操作

时间:2013-04-05 10:13:11

标签: c# wpf

当我尝试关闭当前窗口时,我使用:

this.Close();

它成功地关闭了窗口。但在后台,窗口的操作也在运行。我的意思是,我关闭窗口但无法停止其操作,例如for循环。它继续为流程运作。

2 个答案:

答案 0 :(得分:1)

我怀疑是否存在内置于库中的机制:它要求错误释放资源的问题。相反,在任何长时间运行的进程中添加一个防护,例如

if(isClosing) break;

然后在isClosing事件处理程序中将true设置为Closing

答案 1 :(得分:1)

关闭窗口时,您要求GUI线程完成其操作。但是,那些在不同线程中执行的进程(如Web请求)和其他异步操作都在自己的线程中运行。

如果您在另一个线程中运行循环,那么当您关闭窗口时它很可能不会自行终止。

WPF以异步方式执行其许多操作,因此请浏览窗口代码,看看是否有任何需要显式终止的操作。

此外,异常终止循环不是一个好主意。如果您正在运行循环,请设置一个中断条件,以便在终止窗口时停止循环。