2011-07-04 4 views
2

메인 스레드에서 비동기 메서드를 호출합니다. 그것을 죽이거나 멈추는 법. 감사. 이 내 코드입니다 :비동기 대의원을 중지하거나 죽이는 방법은 무엇입니까?

SendBroadcastTickerAsyncCaller caller = new SendBroadcastTickerAsyncCaller(SendBroadcastTickerAsync); 
IAsyncResult result = caller.BeginInvoke(Floor, data, 
          new AsyncCallback(SendBroadcastTickerAsyncCallbackMethod), null); 

SendBroadcastTickerAsyncCaller 비동기 위임하고 SendBroadcastTickerAsync 비동기 방법이다.

제발 어떻게 도와주세요. 감사.

답변

0

실행을 끝내면 스스로를 죽일 필요가 있습니다. 주기적으로 검사하는 플래그를 설정하여이를 수행하도록 지시 할 수 있으며 설정된 경우 모든 루프에서 발생합니다. 불리언 플래그를 volatile로 표시하여 두 스레드가 실제 값을 볼 수있게해야합니다 .

다른 방법으로 스레드를 죽이는 것은 가능하지만 대개는 적합하지 않습니다.

0

서버에 kill 메소드가 공개되어 있지 않으면 콜백에서 확인하는 BOOL 만 설정할 수 있으며 true이면 아무 것도하지 않습니다.

관련 문제