C# 为什么QueueClient不是一次性的

C# 为什么QueueClient不是一次性的,c#,servicebus,C#,Servicebus,为什么QueueClient不是一次性的?它有一个封闭的方法。我总是要打电话给close吗。文件说: 向服务总线发送清理消息,以表示实体的使用已完成。(继承自客户。) 如果我只使用客户端进行发送,是否需要此选项?因为 重用工厂和客户机 服务总线客户机对象(如QueueClient或MessageSender)是通过MessagingFactory对象创建的,该对象还提供连接的内部管理。建议您不要在发送消息后关闭消息工厂或队列、主题和订阅客户端,然后在发送下一条消息时重新创建它们。关闭消息传递工厂

为什么QueueClient不是一次性的?它有一个封闭的方法。我总是要打电话给close吗。文件说:

向服务总线发送清理消息,以表示实体的使用已完成。(继承自客户。)

如果我只使用客户端进行发送,是否需要此选项?

因为

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


验证链接:

如果您想让这变得更容易,您可以创建自己的
IQueueClient
接口来实现
IDisposable
,然后将其实现为Service Bus的
QueueClient
的适配器。看到了吗,这很奇怪。在链接到之前,这里有一条评论帮助我理解它们实际上是线程安全的,不应该被丢弃。