2011-11-18 3 views
1

어떻게 WP7에서 스레드를 중지/중단/중단 할 수 있습니까?Windows Phone 7에서 멈추는 스레드

업데이트 : 은 (큐 이벤트가 소비자/생산자 Q의 일부이며 실제로 스레드를 종료 필요하지 않습니다 :)) 다음과 같은 해결책을 온 : 매트에

protected override void Dispose(bool disposing) 
{ 
    base.Dispose(disposing); 
    //GP-HACK:Stoping the thread. 
    stopExecutorThread = true; 
    operationQueueNonEmptyEvent.Set(); 
} 

private volatile bool stopExecutorThread = false; 

public void Run() 
{ 
    do 
    { 
     operationQueueNonEmptyEvent.WaitOne(); 

     if (stopExecutorThread) 
      return; 

     .... 
    } 
} 

감사합니다!

고맙습니다.

+0

일반적으로 말하자면 스레드를 디버깅하는 것조차도 간단하지 않습니다. 디버깅에 도움이되는 디버그 정보를 기록하는 것을 고려하십시오. –

+0

정말요? 무슨 뜻이야 ? 난 항상 동시 작업 (동결/해동, 중단 점 등)을 위해 디버거를 사용합니다. 어떤 문제가있을 수 있습니까? – Grigory

답변

2

특정 스레드를 중지 할 수있는 방법이 없습니다. 스레드에서 runnign을 실제로 멈추게하려면 스레드에서 실행중인 코드와 통신하고 수행중인 모든 작업을 중단하도록 지시해야합니다. 이를 수행 할 방법이 없습니다.

또는 BackgroundWorker을 지원 요청 취소로 지원합니다.

+1

[CancelAsync] (http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.cancelasync (v = vs.95) .aspx)를 호출하면 BackgroundWorker가 취소됩니다. 아직 시작되지 않은 경우 실행 중입니다. 즉, 실행이 아직 보류 중입니다. – ajmccall

관련 문제