如何停止或终止异步委托

本文关键字:异步 终止 何停止 | 更新日期: 2023-09-27 18:00:56

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

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

SendBroadcastTikerAsyncCaller是异步委托,SendBroadcastTickerAsync是异步方法。

请帮我如何杀死(或阻止(它。谢谢。

如何停止或终止异步委托

它需要通过结束执行来杀死自己。你可以通过设置一个标志来告诉它这样做,它会定期检查这个标志,如果已经设置了,它就会从它所在的任何循环中出来。你需要将布尔标志标记为volatile,这样两个线程都可以看到实时值。

以其他方式杀死线程是可能的,但通常(永远?(不合适。

除非服务器公开了kill方法,否则您可能只能设置一个BOOL,在回调中检查该BOOL,如果为true,则不执行任何操作。