![](/img/trans.png)
[英].NET 4.5 Async + Await Fire and Forget potential memory leak?
[英]How to fire but don't forget in a separate thread using .NET 4.5?
我将一些代码转换为异步或并行工作时遇到问题。 我遇到了一个异步链(异步/等待上行调用栈),导致我的API需要将Task返回到另一个.NET 4.0应用程序。
.NET 4.0无法实现等待,因此它强制执行任务。API端的结果否定了性能的提高。
在我的API中,我有一些对另一个API的调用(发送通知),在将控制权返回给我的API调用者之前,我不希望等待(当第三方api挂起时性能降低)。 我确实关心出于日志记录目的调用第三方API的结果。
使用Task.Run并行运行这些调用显示了UI响应能力的巨大差异,但是我担心这种情况下将创建的线程数和超时问题可能会导致整个池死锁。
如何在C#.NET 4.5中正确处理这种情况?
我可以将所有第三方API调用从单个上下文发送到线程进行处理,而不是在每个线程上调用task.run吗?
您可以实现一个队列来调度通知。 当您需要发送通知时,您的API只需将通知添加到队列中,然后将其忘记即可。
然后,您可以在其中实施后台任务来处理队列。 您可以将此后台任务配置为使用多个线程(如果需要)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.