首页 > 解决方案 > 如何在 c# 中清除 System.Azure.EventHubs.EventDataBatch 中的值?

问题描述

我正在使用 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);
    }
}

标签: c#azureazure-eventhub

解决方案


查看EventDataBatch.cs中的dispose方法

EventDataBatch.cs


推荐阅读