【发布时间】:2020-05-07 20:15:32
【问题描述】:
我正在开发一个 c# 应用程序,它有一个后台线程来处理很多任务,例如调用 HTTP/REST 端点,进行基本计算,通过套接字发送数据等。所有操作都排队到后台线程,它单独将它们出列,处理它们,然后到下一个。
我一直在考虑在后台线程中使用异步,例如使用 async/await 语义调用 HTTP 端点,但不确定这将如何影响后台线程。让我们说后台线程使用异步调用 HTTP 端点,我如何构造代码以便它出列下一个数据包并处理它?
【问题讨论】:
-
你看过这个:stackoverflow.com/questions/20261300/…。它解决了以正确方式结合这两种技术的问题。
-
停止使用后台工作人员 - 他们现在已经过时了。改为尝试任务 - 它们专门与
async/await一起使用。 -
是否允许多个异步操作同时运行?或者您希望每个操作都在前一个操作完成后开始?
标签: c# multithreading async-await