2

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

this.Close();

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

4

2 回答 2

1

我怀疑库中是否存在这种机制:它要求错误释放资源的问题。相反,在任何长时间运行的进程中添加一个守卫,比如

if(isClosing) break;

然后在事件处理程序中设置isClosing为。trueClosing

于 2013-04-05T10:25:15.367 回答
1

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

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

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

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

于 2013-04-05T10:26:00.017 回答