如何找出Azure中当前的线程数?

时间:2014-09-12 21:18:45

标签: c# multithreading azure azureservicebus azure-diagnostics

我有一个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,如选项中所指定的。有没有办法知道当前存在多少个线程?

奖金问题:是否可以监控这些线程(个人或集体)的内存使用情况?

由于

1 个答案:

答案 0 :(得分:1)

MaxConcurrentCalls选项中指定的值并不等同于在该进程中运行的专用线程。它指示有多少并行异步接收请求排队到Service Bus服务。异步请求完成后,将在回调线程上处理结果。如果队列有很多消息并且您指定了MaxConcurrentCalls = 10,那么理论上最多可以有10个线程调用OnMessageAsync。