为每个会话 C# 创建虚拟队列

Create virtual queue for every session C#

我想异步但按顺序处理请求。我想为每个会话创建一个虚拟队列意味着一个用户进程的所有请求都在一个队列中,而另一个用户的请求在另一个队列中。即两个用户的请求并行处理,但是一个用户的请求应该按顺序处理。

我该如何实现?请建议。

提前致谢。

假设用户直接连接到您的服务而不是通过代理,您应该定义您的服务如下:

[ServiceBehavior(
    ConcurrencyMode=ConcurrencyMode.Single,
    InstanceContextMode=InstanceContextMode.PerSession,    
  )]

InstanceContextMode=InstanceContextMode.PerSession - 这意味着每个客户端 "gets" 他自己的工作线程用于整个会话的服务实例,因此多个客户端有多个线程。 ConcurrencyMode=ConcurrencyMode.Single - 意味着客户端一次只能对服务进行一次调用,因此调用按顺序处理。