我有一個很長的方法,並且有很多內部循環,在內部循環的某個點如果滿足某個條件,我希望線程終止但我也希望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