2011-07-04 31 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,则不执行任何操作。