我正在使用任务来执行一些过程。任务将在一个循环中,我不确定有多少任务/迭代将在那里。它会随时间变化。如何使用任务?以下是我的代码。虽然使用任务[]对象引用未设置为对象的实例
void func1(string loc)
{
var CurrentDirectoryInfo = new DirectoryInfo(loc);
Task[] tasks; // null
int index = 0;
foreach (DirectoryInfo D1 in CurrentDirectoryInfo.GetDirectories)
{
tasks[index] = Task.Factory.StartNew(() =>func1(d1.FullName));
index++;
}
如果我使用空为Task[] tasks
,我得到Object reference not set to an instance of an object
错误。
如果我将其未分配,我得到Use of unassigned variable
错误。
这是非常非常糟糕的代码。您应该重新访问您对“StartNew”的了解,并决定是否需要为每个目录/子目录创建单独的任务。机会是......你没有(你的电脑有多少核心?)。 –
如果'tasks'是任何其他数据类型,并且您试图访问实例方法/属性,您将如何解决该问题? –
此问题的根源与任务无关,因此应该重新命名并重新标记。 –