C# 生成相同的随机数
我需要我的线程每次生成不同的随机数,但有些不是随机的,因为它们与以前的相同 关于这一点,我已经看到了一些答案,但我对c不熟悉,而且我的代码方式也不完全兼容 请注意,我正在开始c#,即使它可能很简单,适应,我只是不知道如何 我试着用C# 生成相同的随机数,c#,multithreading,random,C#,Multithreading,Random,我需要我的线程每次生成不同的随机数,但有些不是随机的,因为它们与以前的相同 关于这一点,我已经看到了一些答案,但我对c不熟悉,而且我的代码方式也不完全兼容 请注意,我正在开始c#,即使它可能很简单,适应,我只是不知道如何 我试着用 static int seed = Environment.TickCount; static readonly ThreadLocal<Random> random = new ThreadLocal<Random>(() => new
static int seed = Environment.TickCount;
static readonly ThreadLocal<Random> random =
new ThreadLocal<Random>(() => new Random(Interlocked.Increment(ref seed)));
static int seed=Environment.TickCount;
静态只读线程本地随机=
new ThreadLocal(()=>new Random(联锁增量(参考种子));
但是没有成功。。。我真的不知道该在哪里用
这是我现在的代码
for (var i = 0; i <= loopTo; i++)
{
var trd = new Thread(() =>
{
while (go != 0)
{
try
{
int count = 0;
string c1 = "";
string pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
Random cc = new Random();
int strpos = 0;
while (count <= 3)
{
strpos = cc.Next(0, pool.Length);
c1 = c1 + pool[strpos];
count = count + 1;
}
// SOME MORE CODE
}
catch (WebException ex)
{
}
}
});
trd.IsBackground = true;
threads.Enqueue(trd);
trd.Start();
}
(变量i=0;i)的
{
while(go!=0)
{
尝试
{
整数计数=0;
字符串c1=“”;
字符串pool=“abcdefghijklmnopqrstuvxyz123456789”;
随机cc=新随机();
int strpos=0;
while(count您可以简单地使用下面的代码。这将确保您永远不会得到重复的随机字符串
string randromString = Guid.NewGuid().ToString();
RNGCrytoServiceProvider.GetBytes是一个更好的选择,因此您可能想看看这一点和上面的副本是否不能回答您的问题,请编辑以包括您尝试过的内容、哪些部分不起作用、您为什么不理解它们,以便我们可以帮助您进一步“随机”不意味着唯一:它意味着不可预测。一般来说,你无法预测随机序列中的下一个数字是否等于序列中的任何前一个数字。(不过,如果可能的值数量有限,并且如果等待足够长的时间,您将到达下一个值必须等于前一个值的点。)谢谢你,Taw,但我提到我确实搜索了一些东西,我确实找到了一些东西,但可能我没有在正确的地方应用它。你是对的,Solomon,虽然我在很长一段时间内没有得到一两个。我直接得到了Duzen个。random()似乎与时钟一起工作,而且,因为我通常有+300个这样的线程,它会生成相同的线程。