我有一个很长的方法,并且有很多内部循环,在内部循环的某个点如果满足某个条件,我希望线程终止但我也希望finally块被调用,所以清理也会发生。我怎样才能做到这一点?停止当前正在运行的线程在某些情况下,finally块被调用
0
A
回答
1
当您想停止时致电return;
。这将离开循环并运行finally(只要返回语句的的循环在的try
块中)。
E.g.
伪代码:
public void run() {
try {
loop {
loop {
if (condition) return;
}
}
} finally {
// always run
}
}
1
请记住, “终止线程” 其实只是指:或者应该是说 - 这里的run()方法退出!作为线程的/ Runnable的run()方法中的最后一个东西放在循环外。
相关问题
- 1. 如何在不停止批处理的情况下停止当前正在运行的cmd进程?
- 2. 在哪些情况下,C#中不会执行finally块?
- 3. 是停止当前正在运行的
- 4. 停止当前正在运行的writeToFile:
- 5. 在某些情况下防止null
- 6. 在某些情况下终止线程的正确方法是什么?
- 7. .NET将停止调试在finally块中运行代码?
- 8. 如何停止当前线程以外的所有正在运行的线程?
- 9. 某些ui更新可以在特殊情况下在Non_UI线程上运行
- 10. 停止正在运行的线程
- 11. 在某些情况下
- 12. 在某些情况下
- 13. System.Security.Cryptography.ProtectedData.Unprotect在某些情况下
- 14. 是否有任何情况下finally块不会被执行?
- 15. 在某些情况下阻止路线导航
- 16. python停止线程正在运行
- 17. 停止并用新线程替换正在运行的线程
- 18. 调用SQL Server存储过程在某些情况下失败
- 19. Chrome/Safari在某些情况下未调用卸载程序
- 20. C#:如何在不停止程序执行的情况下执行线程
- 21. 所以我想在某种情况下停止程序
- 22. 在某些情况下画的边框运行
- 23. 如何在没有stop()方法的情况下停止线程?
- 24. 使用@XmlTransient只在某些情况下
- 25. Rails - 在某些情况下使用CSS
- 26. 在不停止正在运行的实例的情况下更改正在运行的EC2实例的.pem键
- 27. javascript函数在不被调用的情况下运行
- 28. Javasctipt函数在未被调用的情况下运行?
- 29. 上下文菜单在WPF的某些情况下被切断
- 30. 如何知道当前正在运行的线程并将其停止iOS
你不能用try/finally来包围逻辑原因? – Perception
它被包围了,我正在考虑调用Thread.interrupt(),但会跳过finally块。但我会按照xagyg的回答 – Arya