c# - 如何在 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);
}
}
解决方案
查看EventDataBatch.cs中的dispose方法
推荐阅读
- c# - 子弹不动。统一
- python - 单击指向另一个模板的链接时,Django 模板只会重新加载
- docker - 如何从命令行制作 docker-compose 文件
- python - 说下面的代码在 Python3 中实现了多态是否正确?
- git - 在 Flask 中,如果您将生产和开发变量存储在 .gitignore 文件中,您应该如何部署到 Heroku?
- javascript - 有没有一种方法可以显示页面的提要,而无需用户使用 Facebook Javascript SDK 登录?
- javascript - 使用 Google 文档作为数据端点来获取 JSON
- javascript - 单击按钮时关闭电子窗口?
- python - Python 用 pyautogui 保存多张图片
- html - 导航栏中的下拉菜单不起作用