[英]How can I clear the values in System.Azure.EventHubs.EventDataBatch in c#?
我正在使用 System.Azure.EventHubs.EventDataBatch 将一批事件发送到 Azure 事件中心。
成功发送批次后,我想清除事件集合,然后将新事件添加到事件中心以发送下一批。
由于 EventDataBatch 是一个事件列表,我预计会有一个 Clear() 函数可以让人们清除集合。 但不幸的是,没有。 有谁知道实现这一目标的干净方法?
或者,我正在考虑处理当前的 EventDataBatch,然后使用 EventHubClient.CreateBatch() 创建一个新的 EventDataBatch:
var myEventBatch = eventHubClient.CreateBatch();
foreach(var message in messages)
{
if(!myEventBatch.TryAdd(message))
{
await eventHubClient.SendAsync(myEventBatch).ConfigureAwait(false);
//myEventBatch.Clear();
//myEventBatch = eventHubClient.CreateBatch();
myEventBatch = new EventDataBatch(256000);
myEventBatch.TryAdd(message);
}
}
查看EventDataBatch.cs中的dispose方法
您可以使用using
因为 EventDataBatch 是 IDisposable。 这将负责处理 EventDataBatch 对象。
using (EventDataBatch eventBatch = await producerClient.CreateBatchAsync())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.