【问题标题】:c# strange user sync on list addc#奇怪的用户同步列表添加
【发布时间】:2013-06-09 12:16:20
【问题描述】:

我使用 4 个线程,所有内存都是非共享的(所有线程都有自己的对象,没有同步,也没有锁) cpu使用率100%,然后我取消注释:

private List<MyOrder> orders = new List<MyOrder>();
...
orders.Add(order);
...

“订单”不在其他任何地方使用 现在 cpu 使用率大约 80%,并发可视化屏幕:

First Screen

Second Screen

基于网络框架 4.0/4.5

有什么想法吗?

【问题讨论】:

  • 我认为您需要显示更多代码。显示的代码中没有同步。 (内存分配除外。能否尝试在列表中设置一个较大的初始容量,以确保重新分配不会干扰您的测量)
  • PositionManager.AddOrder的实现是什么?

标签: c# multithreading performance


【解决方案1】:

我相信问题出在语法错误,List 的工作方式如下: 示例:

//For strings
List<string> Names = new List<string>();
//or for integers
List<int> Numbers = new List<int>();

【讨论】:

  • 抱歉我的疏忽,列出 订单,我已经解决了问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 2011-06-22
  • 1970-01-01
相关资源
最近更新 更多