为什么QueueClient不是一次性的

时间:2014-07-23 11:44:38

标签: c# servicebus

为什么QueueClient不是一次性的?它有一个Close方法。我总是要打电话。文档说:

  

向Service Bus发送一条清理消息,表示实体使用情况已完成。 (继承自ClientEntity。)

如果我只使用客户端发送,我是否需要这个?

1 个答案:

答案 0 :(得分:0)

因为

  

重复使用工厂和客户   服务总线客户端对象(例如QueueClient或MessageSender)是通过MessagingFactory对象创建的,该对象还提供了连接的内部管理。建议您在发送消息后不要关闭消息传递工厂或队列,主题和订阅客户端,然后在发送下一条消息时重新创建它们。关闭消息传递工厂会删除与服务总线服务的连接,并且在重新创建工厂时会建立新的连接。建立连接是一项昂贵的操作,可以通过将同一工厂对象和客户端对象重用于多个操作来避免。您可以安全地将这些客户端对象用于并发异步操作并从多个线程使用。

证明链接:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements#reusing-factories-and-clients