【发布时间】:2012-03-07 18:46:14
【问题描述】:
我需要跨多个正在运行的线程快速生成随机浮点数。我试过使用System.Random,但它对我的需要来说太慢了,它在多个线程中返回相同的数字。 (当我在单线程中运行我的应用程序时它工作正常。)另外,我需要确保生成的数字在 0 到 100 之间。
这是我现在正在尝试的:
number = random.NextDouble() * 100;
我应该尝试什么?
【问题讨论】:
-
如果 random 总是给你相同的数字,你可能没有正确使用它。另请注意,
Random不是线程安全的。 -
另请注意,生成真正的随机数是一件大事:random.org/randomness
-
非常快速且线程安全:
return 4; -
在“并行随机数生成器”主题上搜索 O(10^6) 引用。我建议 OP 做一些研究。
标签: c# performance random parallel-processing generator