Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/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# 设置线程数组中线程的名称_C#_Multithreading - Fatal编程技术网

C# 设置线程数组中线程的名称

C# 设置线程数组中线程的名称,c#,multithreading,C#,Multithreading,我无法设置线程数组对象watek[I]的Name方法的字符串值。Visual抛出一个exeption:“System.NullReferenceException:'对象引用未设置为对象的实例'。” intwatki; 串watki2; Console.WriteLine(“Ile watkow Urucomic?:”); watki2=Console.ReadLine(); watki=转换为32(watki2); 线程[]watek=新线程[watki]; 对于(int i=0;iProgr

我无法设置线程数组对象watek[I]的Name方法的字符串值。Visual抛出一个exeption:“System.NullReferenceException:'对象引用未设置为对象的实例'。”

intwatki;
串watki2;
Console.WriteLine(“Ile watkow Urucomic?:”);
watki2=Console.ReadLine();
watki=转换为32(watki2);
线程[]watek=新线程[watki];
对于(int i=0;iProgram.watek(watek[i].Name,watki));
}
我的问题是:这可能吗?如果是,我做错了什么?

试试这个

在第一次实例化对象之前,不能为该对象分配属性

for (int i = 0; i < watki; i++)
{
    watek[i] = new Thread(() => Program.Watek(Convert.ToString(i), watki));
}
for(int i=0;iProgram.watek(Convert.ToString(i),watki));
}

使用对象初始化:

for (int i = 0; i < watki; i++)
{
    string name = i.ToString();
    watek[i] = new Thread(() => Program.Watek(name, watki)) { Name = name };
}
for(int i=0;iProgram.watek(name,watki)){name=name};
}

您正在创建一个长度为
watki
的数组,然后在创建新线程之前尝试分配名称。尝试翻转for循环中的两行-创建线程,然后为其指定名称。
for (int i = 0; i < watki; i++)
{
    string name = i.ToString();
    watek[i] = new Thread(() => Program.Watek(name, watki)) { Name = name };
}