2011-07-04 52 views
2

我從主線程調用異步方法。如何殺死或阻止它。謝謝。 這是我的代碼:如何停止或終止異步委託?

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

SendBroadcastTickerAsyncCaller是一個異步委託和SendBroadcastTickerAsync是一種異步方法。

請幫助我如何殺死(或停止)它。謝謝。

回答

0

它需要通過結束執行來終止自己。你可以通過設置一個定期檢查的標誌來告訴它,如果它已經被設置,那麼它會從它所在的任何循環中出來。你需要將boolean標誌標記爲volatile,以便兩個線程都能看到實時值。

以其他方式殺死線程是可能的,但通常不會(從前?)適當。

0

除非服務器暴露了kill方法,否則您可能只能設置一個BOOL來檢查回調,如果爲true,則不執行任何操作。