我正在尝试使用任务并行库逐个单元格地构建矩阵。
我有以下代码可以做到这一点:
List<Campaign> campaigns = GetHomeCampaigns();
Dictionary<int, string> sellers = GetHomeSellers();
int numTasks = campaigns.Count*sellers.Count;
Task<MatrixCell<string>>[] statusTasks = new Task<MatrixCell<string>>[numTasks];
int count = 0;
for(int i = 0; i < campaigns.Count -1;i++)
{
for(int j = 0; j < sellers.Count -1;j++)
{
Func<MatrixCell<string>> getStatus = () => GetStatus(campaigns[i].CampaignID, sellers.ElementAt(j).Key);
statusTasks[count] = Task.Factory.StartNew(getStatus);
count++;
}
}
Task.WaitAll(statusTasks);
我正在尝试做的是并行处理和确定每个单元格,然后在它们全部完成后,使用与此示例无关的附加代码逐行组装矩阵。
我现在面临的问题是以下行
Task.WaitAll(statusTasks)
我收到以下 ArgumentException
The tasks array included at least one null element.
Parameter name: tasks
我检查了数组,它显示所有项目都存在于 statusTasks 中。
不知道还有什么地方可以看。
谢谢,