在我的C#程序中,我有一个线程代表正在运行的测试,可以通过点击标有“中断执行”的按钮来中止。为了使线程(因此也包括测试)以一种优雅的方式终止(并在此之前执行一些重要的工作),只有在某些明确定义的时刻才启用该按钮,在这些时刻我捕获ThreadAbortedException,执行Thread.ResetAbort()并优美地死亡(即线程结束)。
问题在于,在可能中止的时间窗口中,有一些任务需要从开始到完成一次性完成,因此我担心ThreadAbortedException。锁定不能解决这个问题,虽然finally块可以,但我不认为将重要代码包装在以下方式中是优雅的:
问题在于,在可能中止的时间窗口中,有一些任务需要从开始到完成一次性完成,因此我担心ThreadAbortedException。锁定不能解决这个问题,虽然finally块可以,但我不认为将重要代码包装在以下方式中是优雅的:
try {
} finally {
// vital code
}
然而,我没有找到其他的解决方案。
这是另一种延迟 ThreadAbortException
干扰直到块结束的方法吗?