我需要我的线程每次都生成不同的随机数,但是有些不是那么随机的,因为它们与以前的随机数相同。
已经看到了有关此问题的一些答案,但是我对c#并不熟悉,并且我拥有的代码与之不完全兼容。
请注意,我正在启动c#,甚至可能很简单,要适应,我只是不知道怎么做。
我尝试使用
static int seed = Environment.TickCount;
static readonly ThreadLocal<Random> random =
new ThreadLocal<Random>(() => new Random(Interlocked.Increment(ref seed)));
但是没有成功……真的不知道该在哪里使用
。这是我现在的代码。
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();
}
答案 0 :(得分:-1)
您可以简单地使用以下代码。这样可以确保您永远不会得到重复的随机字符串。
string randromString = Guid.NewGuid().ToString();