2 つの別個のタスクと、それぞれに 2 つの独立した操作があります。t0 はスレッド セーフだと思いますが、t1 についてはわかりません。それが正しいか?並行辞書のパフォーマンスはひどく、コレクションに大量のデータを挿入する必要があります。
var t0 = new Task[2]
{
Task.Factory.StartNew(()=>
{
list1=new sortedlist<int,int>(sortedlist1)
}
}),
Task.Factory.StartNew(()=>
{
list2=new sortedlist<int,int>(sortedlist2)
})
};
Task.WaitAll(t0)
var t1 = new Task[2]
{
Task.Factory.StartNew(()=>
{
foreach (var item in sortedlist1)
{
list1.Add(item.Key, item.Value);
}
}),
Task.Factory.StartNew(()=>
{
foreach (var item in sortedlist2)
{
list2.Add(item.Key, item.Value);
}
})
};
Task.WaitAll(t1)