小编use*_*349的帖子

使用c#中的线程用随机数填充数组

所以正如在 tile 中所说,我正在尝试使用 16 个(在我的情况下)线程用随机数填充一个字节数组,现在使用一个线程填充一个包含 500000000 个字节的数组大约需要六秒半的时间,所以逻辑上说,使用 16 个线程至少会快 10 倍,但后来我尝试这样做,花了 15 秒来填充它,我所做的是给每个线程一个段来填充相同的数组

这是代码:

        static byte[] nums2 = new byte[500000000];
        static Random rnd = new Random(123);
        static void fill()
        {
            for (int i = 0; i < nums.Length; i++)
                nums[i] = (byte)rnd.Next(10);
        }

        static void fillPart(object ID)
        {
            var part = nums2.Length / Environment.ProcessorCount;
            int baseN = (int)ID * part;
            for (int i = baseN; i < baseN + part; i++)
                nums2[i] = (byte)rnd.Next(10);
            Console.WriteLine("Done! " + ID);
        }

        static …
Run Code Online (Sandbox Code Playgroud)

c# arrays random multithreading thread-safety

3
推荐指数
1
解决办法
127
查看次数

标签 统计

arrays ×1

c# ×1

multithreading ×1

random ×1

thread-safety ×1