2011-02-10 3 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

스레드를 시작하지 않았습니다. 이 문제를 재현하는 코드를 게시하십시오. –

답변

2

"안전하게"스레드를 중단하는 것은 정말로 불가능합니다. 대신 스레드가 이탈해야한다고 알리는 메커니즘을 가지고 있어야하며 스레드가 기본 진입 점 메서드에서 복귀하여 협력하여 종료되도록 허용해야합니다.