Web API调用在响应之前等待另一个线程的处理

时间:2019-03-21 16:14:41

标签: multithreading asp.net-web-api

我有一个具有自托管Web API的Windows服务。 Web api之外有一个正在运行的线程(称为主线程),唯一负责的是检查(某处)是否有要处理的数据,将其发送到下游进行处理,然后进行响应(某处) )处理成功(或不成功)。设计的那部分不能更改。

我需要做的是在Web api上接受HTTP请求,该请求会将传入的数据放置在某个位置,以供Main线程拾取(我在想ConcurrentQueue),然后等待该数据被处理后再发送HTTP响应。

我遇到的部分是如何使HTTP请求线程在响应之前最好等待数据处理?做一阵子循环来观察响应似乎不是很有效。我当前的想法是通过传递对它的ManualResetEvent的引用,然后等待一个,来建立HTTP请求线程订阅的消息总线。完成后,主线程将发布到总线,这将设置ManualResetEvent,从而允许HTTP请求线程获取结果并发送HTTP响应。

以这种方式使用ManualResetEvents是一个好主意吗?感觉应该已经有一种方法可以在Web api上进行处理,但是我什么都没找到。

0 个答案:

没有答案