问题源于在每个环路迭代中创建一个新的
实例。 由于通常使用系统时钟播种Random
,因此迅速执行的循环可能会反复初始化具有相同种子的Random
解决方案:一个共享的实例Random
这是更正的Random
函数:
RandomNumber
通过使用单个
<code class="language-csharp">private static readonly Random random = new Random(); private static readonly object syncLock = new object(); public static int RandomNumber(int min, int max) { lock (syncLock) { // Thread-safe access return random.Next(min, max); } }</code>>同步访问,RNG将保持其内部状态,在循环中的每个呼叫上产生独特的随机数。
以上是为什么我的随机数发生器只会产生一个唯一的数字?的详细内容。更多信息请关注PHP中文网其他相关文章!