从不同的线程访问后处理BrokeredMessage

时间:2016-11-22 10:11:35

标签: c# multithreading azure servicebus

这可能与this question重复,但这与关于批量数据库更新的讨论相混淆,但仍然没有正确答案。

在一个使用Azure Service Bus队列的简单示例中,在将BrokeredMessage放入队列后,我无法访问它;如果我从另一个线程读取队列,它总是被处理掉。

示例代码:

[self.addShotButton addTarget:self action:@selector(submitShot:) forControlEvents:UIControlEventTouchUpInside];

我尝试过使用设置,但无法使其正常工作。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

通过Serkant Karaca @Microsoft here的回复回答我自己的问题:

  

非常基本的规则,我不确定这是否有记录。收到的消息需要在回调函数的生命周期内处理。在您的情况下,将在异步回调完成时处理消息,这就是您在另一个线程中使用ObjectDisposedException失败的完整尝试的原因。

     

我真的没有看到进一步处理的排队消息如何帮助提高吞吐量。这肯定会给客户增加更多负担。尝试在异步回调中处理消息,这应该足够高效。

开溜。