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 に答える