如何停止或终止异步委托?

时间:2011-07-04 04:22:57

标签: c# .net multithreading asynchronous

我从主线程调用异步方法。如何杀死或阻止它。谢谢。 这是我的代码:

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

SendBroadcastTickerAsyncCaller是一个异步委托,而SendBroadcastTickerAsync是一个异步方法。

请帮助我如何杀死(或停止)它。感谢。

2 个答案:

答案 0 :(得分:0)

除非服务器暴露了kill方法,否则你可能只能设置你在回调中检查的BOOL,如果是,则不执行任何操作。

答案 1 :(得分:0)

它需要通过结束执行来自杀。你可以通过设置一个它定期检查的标志来告诉它这样做,如果它已被设置,那么它就是它所处的循环。你需要将boolean标志标记为volatile,这样两个线程都能看到实时值

以其他方式杀死一个帖子是可能的,但通常不会(永远?)合适。