当我尝试关闭当前窗口时,我使用:
this.Close();
它成功地关闭了窗口。但在后台,窗口的操作也在运行。我的意思是,我关闭窗口但无法停止其操作,例如for循环。它继续为流程运作。
答案 0 :(得分:1)
我怀疑是否存在内置于库中的机制:它要求错误释放资源的问题。相反,在任何长时间运行的进程中添加一个防护,例如
if(isClosing) break;
然后在isClosing
事件处理程序中将true
设置为Closing
。
答案 1 :(得分:1)
关闭窗口时,您要求GUI线程完成其操作。但是,那些在不同线程中执行的进程(如Web请求)和其他异步操作都在自己的线程中运行。
如果您在另一个线程中运行循环,那么当您关闭窗口时它很可能不会自行终止。
WPF以异步方式执行其许多操作,因此请浏览窗口代码,看看是否有任何需要显式终止的操作。
此外,异常终止循环不是一个好主意。如果您正在运行循环,请设置一个中断条件,以便在终止窗口时停止循环。