【发布时间】:2021-12-23 23:38:51
【问题描述】:
我正在使用Azure.Messaging.ServiceBus 库。
我创建ServiceBusClient 和ServiceBusProcessor 来开始接收这样的队列消息:
var serviceBusClient = new ServiceBusClient(connectionString);
ServiceBusProcessor processor = serviceBusClient.CreateProcessor(queue);
processor.ProcessMessageAsync += HandleEvent;
processor.StartProcessingAsync();
在应用程序关闭时,我以这种方式处理 ServiceBusClient 和 ServiceBusProcessor:
processor.ProcessMessageAsync -= HandleEvent; // Is this needed?
await processor.DisposeAsync();
await serviceBusClient.DisposeAsync();
我是否需要明确删除HandleEvent,或者processor.DisposeAsync() 应该对此负责?
我找不到processor.DisposeAsync() 正在删除其代码中的任何处理程序,但是,可能是因为根本不需要删除处理程序?官方文档似乎也缺乏任何关于如何正确处理 ServiceBusProcessor 实例的好例子。
难道await processor.DisposeAsync() 根本不需要,因为serviceBusClient.DisposeAsync() 应该完成所有工作?
【问题讨论】:
标签: c# azure azureservicebus