0

我正在尝试安全地杀死一个线程。在我的按钮单击中,我有:

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 

当它去中止线程时,我仍然得到一个线程中止错误。我究竟做错了什么?

4

1 回答 1

2

“安全地”中止线程确实是不可能的。相反,您应该专注于拥有一种机制,您可以通知线程它应该退出,并允许它协作退出(通过从其主入口点方法返回)。

于 2011-02-10T16:12:11.707 回答