私はこれをやっています:
private static void Main(string[] args)
{
var dict1 = new Dictionary<int, string>();
var dict2 = new Dictionary<int, string>();
DateTime t1 = DateTime.Now;
for (int i = 1; i < 1000000; i++)
{
Parallel.Invoke(
() => dict1.Add(i, "Test" + i),
() => dict2.Add(i, "Test" + i) );
}
TimeSpan t2 = DateTime.Now.Subtract(t1);
Console.WriteLine(t2.TotalMilliseconds);
Console.ReadLine();
}
したがって、for ループを 100 万回実行し、2 つの異なる辞書に項目を追加します。問題は、2 秒しかかからない通常のシーケンシャル メソッド (タスク/スレッドなし) の 5 倍以上である 11 秒かかることです。理由がわからない。