以下のように Task を使用しましたが、パフォーマンスは向上しません。0 ~ 1 秒で実行されるメソッドを確認しましたが、Task(30 Tasks) では 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();
}