stevenjin 2024-01-04 14:00 采纳率: 97.6%
浏览 9
已结题

c#按名称高效更新指定的集合

环境C#
1.按设备区分,定时更新集合,每台设备的集合项达数百个
2.想到的方法是用ConcurrentDictionary<string,collection>方式,key是设备IP,值是要更新的集合项。存在的问题:由于字段多,逐一更新较慢。请教合适高效的方法

  • 写回答

2条回答 默认 最新

  • 编程乐学 2024-01-04 15:04
    关注

    制作不易,请先采纳
    如果你想提高更新集合项的效率,可以考虑使用并行处理来同时更新多个设备的集合项。你可以尝试使用Parallel.ForEach方法来遍历设备集合,并在并发环境下更新集合项。

    以下是一个示例代码片段,展示如何使用Parallel.ForEach来并行更新设备集合的集合项:

    ConcurrentDictionary<string, Collection> deviceCollections = new ConcurrentDictionary<string, Collection>();
    
    // 并行遍历设备集合,并更新集合项
    Parallel.ForEach(deviceCollections, device =>
    {
        // 按照设备IP获取要更新的集合项
        Collection collectionToUpdate = deviceCollections[device.Key];
    
        // 更新集合项的逻辑
        // ...
    
        // 更新完后将集合项再存回字典中
        deviceCollections[device.Key] = collectionToUpdate;
    });
    

    在这个示例中,deviceCollections是你的设备集合,使用ConcurrentDictionary<string, Collection>储存。通过Parallel.ForEach方法,我们可以同时处理多个设备的集合项更新。

    请替换示例代码中的"更新集合项的逻辑"处的代码,以满足你实际需要更新集合项的逻辑。

    需要注意的是,并行处理可能会带来一些额外的开销,比如线程同步和资源消耗。因此,在具体实现时,你需要根据设备数量、集合项的复杂性以及系统资源来权衡并行处理的效益和成本。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月13日
  • 已采纳回答 1月5日
  • 修改了问题 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?