将多个AsyncCallback从不同的客户端连接到同一个实例工作线程。(。NET / C#)

时间:2014-01-23 10:23:16

标签: c# .net web-services asynchronous

我有一个独特的问题,我无法解决。我有一个Webservice。 webservice中的方法创建一个Worker线程来执行长时间运行的操作。

void KickStartLongRunningOperation()

但问题是多个客户端依赖于此线程的完成。

我还有一个BeginLongRunninOperation(AsyncCallback回调,AsyncState)和EndLongRunningOp ...对WebMethod。

现在所需的行为是,当主工作线程(LongRunningOperation)完成时,应该调用来自不同客户端的所有AsyncCallback。

怎么做?可能吗?为了说明一个呼叫序列:

  • 客户1来电 - > void KickStartLongRunningOperation() - >主工作线程启动(只有一个实例)
  • 客户1来电 - > BeginXXX提供AsyncCallback作为参数(理想情况下,这应该将此AsyncCallback连接到LongRunning Worker线程的同一实例)
  • 客户2来电 - > BeginXXX提供AsyncCallback作为参数(理想情况下,这应该将此AsyncCallback连接到LongRunning Worker线程的同一实例)
  • 客户3来电 - > BeginXXX提供AsyncCallback作为参数(理想情况下,这应该将此AsyncCallback连接到LongRunning Worker线程的同一实例) ...

主工作线程完成

  • 应调用客户端1实例/线程上的AsyncCallback
  • 应该调用客户端2实例/线程上的AsyncCallback
  • 应该调用客户端3实例/线程上的AsyncCallback

我想通过APM进行轮询,但我不确定如何将多个AsyncCallbacks从不同的客户端实例连接到同一个工作线程。

0 个答案:

没有答案