Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 对象当前正在其他地方使用_C# 4.0_Parallel Processing - Fatal编程技术网

C# 4.0 对象当前正在其他地方使用

C# 4.0 对象当前正在其他地方使用,c#-4.0,parallel-processing,C# 4.0,Parallel Processing,我正在使用以下代码 出现以下错误 对象当前正在其他地方使用 请告诉我正确的路 Random rnd = new Random(); Pen p = new Pen(Color.Black); Parallel.For(0, 1000, i => pictureBox1.CreateGraphics().DrawEllipse(p, rnd.Next(0, pictur

我正在使用以下代码

出现以下错误

对象当前正在其他地方使用

请告诉我正确的路

 Random rnd = new Random();

        Pen p = new Pen(Color.Black);


        Parallel.For(0, 1000,
                     i =>
                     pictureBox1.CreateGraphics().DrawEllipse(p, rnd.Next(0, pictureBox1.Width),
                                                              rnd.Next(pictureBox1.Height),
                                                              10, 20)); // error runtime

Next有副作用,并且不是线程安全的


试试Jon Skeet的

大概是
pictureBox1
对象告诉您它不是线程安全的。(您还应该注意,
Random
类也不是线程安全的。)可能由多个线程加入的Random尝试用new Random.Next替换rnd.Next。@user629926:您是对的,
Random
不是线程安全的,但它不会产生任何友好的ish错误,如“对象当前正在其他地方使用”;它就这样断了@杰克:对于,不要使用并行。对循环使用标准的
。及