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循環百萬時間和添加項目到兩個不同的字典。 問題是,它需要11秒,這是超過5倍的正常順序方法(沒有任務/線程),只需要2秒。 不知道爲什麼。
你確定這是做你想做的嗎?這隻做2次並行操作1000000次。你確定你不想讓你的Invoke調用中的循環? –
不相關,但秒錶是這樣的時機好一點。 –
好吧,我在這裏做的是測試同時填充多個字典的性能。我的真實情況是從數據庫加載所有實體並根據某些Key字段填充多個字典,然後緩存這些字典。 – Luka