代码拉取完成,页面将自动刷新
var op = new IdGeneratorOptions (1) { WorkerIdBitLength = 6 };
YitIdHelper.SetIdGenerator (op);
Dictionary<long, long> dict = new Dictionary<long, long> ();
List<Task> list = new List<Task>();
for(int i = 0; i < 2000; i++)
{
var task = Task.Run (() =>
{
var newId = YitIdHelper.NextId ();
dict.Add (newId, i);
});
list.Add (task);
}
list.ForEach (item =>
{
System.Threading.Thread.Sleep (1);
item.Wait ();
});
int iw = 0;
这样子测试的话 会有生成不了的情况
预期 2000个
实际 小于2000
应该是生成重复或则失败了
是你用的这个 Dictionary 的并发有问题。你直接 Insert 到 DataBase 看看。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
还真是
换成了 ConcurrentDictionary<long, long> dict = new ConcurrentDictionary<long, long> (); 测试了2000 没有问题 ;棒棒的
登录 后才可以发表评论