2011-02-10 38 views
0

我想安全地殺死一個線程。在我的按鈕點擊我有:VB.NET 1.1安全中止線程

try 
    dim bar as new foo() 
    dim mythread as New System.Threading.Thread(AddressOf bar.Start) 
    mythread.Start() 
    sleep(1000) 
    mythread.abort() 
catch ex as Exception 
    msgbox ex.Message 
end try 

在我的課,我有:

class foo 

public function Start() 
     Try 
     do some stuff... 
     Catch tae As ThreadAbortException 
      Thread.ResetAbort() 
     Catch ex As Exception 
      LogData("[ ERROR ] ", "[ Start ]" & ex.Message & " line: " & Erl()) 
     End Try 
end sub 

end class 

當它關係到中止該線程我仍然得到一個線程中止錯誤。我究竟做錯了什麼?

+0

您沒有啓動線程。郵政編碼,重現這個問題。 – 2011-02-10 16:47:01

回答

2

真的不可能「安全地」中止一個線程。相反,您應該專注於有一種機制,可以通知線程它應該退出,並允許它協同退出(通過從主入口點方法返回)。