产生相同的随机数

时间:2018-12-21 05:48:58

标签: c# multithreading random

我需要我的线程每次都生成不同的随机数,但是有些不是那么随机的,因为它们与以前的随机数相同。

已经看到了有关此问题的一些答案,但是我对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();
}

1 个答案:

答案 0 :(得分:-1)

您可以简单地使用以下代码。这样可以确保您永远不会得到重复的随机字符串。

  string randromString = Guid.NewGuid().ToString();