当前位置: 首页 > 编程语言 > C#

在Using语句中调用异步方法分享

时间:2023-04-10 14:00:33 C#

在Using语句中调用异步方法我想使用异步调用发送消息,但是在这个过程中使用可用资源。我不确定如何正确处理这个问题。使用(IDisposabledisposeMe=newDisposableThing()){MethodAsync(disposeMe);任何想法如何做到这一点。异步方法没有任何回调。编辑:基于@Servy接受的答案的建议。实现更改为:publicasyncTaskMethod(){using(IDisposabledisposeMe=newDisposableThing()){awaitMethodAsync(disposeMe);}}异步方法没有任何回调这是个问题。一个很大的问题。如果可能,你应该解决这个问题;除非有充分的理由不这样做,否则所有异步方法都应该为调用者提供某种方式来了解它们何时完成,是否为回调、返回任务、触发事件等。这对于异步尤其令人不安方法。依靠一次性资源来做到这一点。如果操作完成时确实无法通知您,则不能在方法完成后调用Dispose。确保资源在异步操作仍然需要时不被处置的唯一方法是泄漏资源而不是完全丢弃它。如果一次性资源有终结器,它最终可能会被清理,但并非所有一次性资源都会这样做。如果你能以某种方式修改异步方法,那么你只需要在回调中调用Dispose,或者在任务的延续中,或者在相关事件的处理程序中。除非您可以await异步操作,否则您将无法使用use(因为await太棒了)。以上就是C#学习教程:在using语句中调用异步方法。侵权请点击右侧联系管理员删除。如需转载请注明出处: