我使用了如下所示的任务,但没有性能提升。我检查了我的方法,该方法在 0-1 秒内执行,但使用 Task(30 个任务),它需要 5-12 秒。如果我犯了任何错误,任何人都可以指导。我想并行运行 30 个并期望在最多 2 秒内完成 30 个。
这是我的代码:
Task[] tasks = new Task[30];
for (int p = 0; p <= dstable.Tables[0].Rows.Count - 1; p++)
{
MethodParameters newParameter = new MethodParameters();
newParameter.Name = dstable.Tables[0].Rows[p]["Name"].ToString();
tasks[p] = Task.Factory.StartNew(() => ParseUri(newParameter));
Application.DoEvents();
}
try
{
Task.WaitAll(tasks);
//Console.Write("task completed");
}
catch (AggregateException ae)
{
throw ae.Flatten();
}