Parellel.ForEach error

本文关键字:error ForEach Parellel | 更新日期: 2023-09-27 17:56:17

我有一个线程数组,我想同时/并行运行,但我得到" NullReferenceException "

var t = new Thread[6];
t[0] = new Thread(() => DoSomething0());
t[1] = new Thread(() => DoSomething1());
t[2] = new Thread(() => DoSomething2());
t[3] = new Thread(() => DoSomething3());
t[4] = new Thread(() => DoSomething4());
t[5] = new Thread(() => DoSomething5());
Parallel.ForEach(t, item => item.Start());

Parrallel.Foreach出错,因为项目null但我做错了什么?

Parellel.ForEach error

您为六个项目创建了一个数组,但只为前五个项目赋值。最后一项为 null,因此当您尝试使用数组中的所有项目时,会出现 null 引用错误。

您定义了 6 个元素,但只分配了 5 个元素,最后一个元素现在null

这就是为什么当你尝试使用所有这些时你会NullReferanceException

同时初始化第 6 个元素。

t[0] = new Thread(() => DoSomething0());
t[1] = new Thread(() => DoSomething1());
t[2] = new Thread(() => DoSomething2());
t[3] = new Thread(() => DoSomething3());
t[4] = new Thread(() => DoSomething4());
t[5] = new Thread(() => DoSomething5());

你有一个实例化了 6 个插槽的数组(最初都是null的),并且你只实例化前 5 个插槽,剩下第 6 个null。这将是您的空项目。