VB.NET 1.1安全地中止线程

时间:2011-02-10 16:05:05

标签: vb.net multithreading abort

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

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 

当它中止线程时,我仍然会收到线程中止错误。我做错了什么?

1 个答案:

答案 0 :(得分:2)

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