我有一个QueueClient
从服务总线接收消息,并产生处理这些消息的线程:
var options = new OnMessageOptions();
options.MaxConcurrentCalls = 10;
// Use of Service Bus OnMessage message pump.
_client.OnMessageAsync(
async (msg) =>
{
// Will block the current thread if Stop is called.
await ProcessMessageAsync(processStream, msg);
},
options);
我知道这可以产生的最大线程数是10,如选项中所指定的。有没有办法知道当前存在多少个线程?
奖金问题:是否可以监控这些线程(个人或集体)的内存使用情况?
由于
答案 0 :(得分:1)
MaxConcurrentCalls选项中指定的值并不等同于在该进程中运行的专用线程。它指示有多少并行异步接收请求排队到Service Bus服务。异步请求完成后,将在回调线程上处理结果。如果队列有很多消息并且您指定了MaxConcurrentCalls = 10,那么理论上最多可以有10个线程调用OnMessageAsync。