我刚刚针对我的 Azure 代码运行了 Visual Studio 2010 线程分析器,并注意到我遇到了很多争用。我的代码被阻塞的频率比它运行的频率高!
我的工人根本没有自定义线程逻辑。这是一个简单的 While 循环,它询问各种队列是否有工作。我创建了 QueueRepositoryClass 的实例,然后调用 GetQueueMessage 函数。
看起来由于某种原因,多个线程正在访问我的 GetQueueMessage 方法并使用相同的 queueClient 实例。也许是我使用 CloudStorageAccount 对象的结果?还是 CreateCloudQueueClient 扩展方法?