我正在这样做:
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 万次并将项目添加到两个不同的字典中。问题是它需要 11 秒,是仅需要 2 秒的正常顺序方法(没有任务/线程)的 5 倍多。不知道为什么。