我試圖在應用程序中實現多線程。應用程序需要創建可變數量的線程,同時傳遞變量。我可以很容易地創建線程,但是我試圖找出一種能夠立即停止所有線程的方法,並且如果在這些線程中的任何一個線程中發現錯誤,請停止所有線程。如果在其中一箇中檢測到錯誤,則停止所有線程
我目前的解決方案是將函數封裝在循環中,檢查布爾值是否爲「真」,在這種情況下線程繼續執行。如果有錯誤,我將該值更改爲「False」,並停止所有線程。同樣,如果我想手動停止線程,我可以從函數中將值設置爲「false」。
有沒有更好的解決方案,因爲主要問題是線程必須在完全停止之前到達循環的結尾?
當你說「錯誤被捕獲」時,你的意思是它會在線程中拋出一個異常,或者你的代碼只是檢測到某種錯誤? –
兩者 - 他們在嘗試catch塊以及我自己的東西來檢查錯誤 – Matt
有沒有解決方案,使這更容易。除了實際工作的解決方案之外,如果您不聲明它是volatile的,那麼在VB.NET中,Boolean不是線程安全的。改爲關注Task和CancellationToken。而且,無論何時進行穿線,首先要做一件*工作。它使用得越多,指數越難。 –