ConcurrentDictionary は、スレッド数と初期容量を設定することで若干高速化されます。スレッドセーフなクラスなので、Parallel クラスで処理することも可能です。ソースコードは以下の通りです。
//ConcurrentDictionaryへの要素追加に関する計測 var lisw = Stopwatch.StartNew(); //スレッド数と初期容量を設定する。 var cdictionary = new ConcurrentDictionary<string, object>(4, MAXITEMS); Parallel.For(0, MAXITEMS, i => { cdictionary[i.ToString()] = i; }); //var cdictionary = new ConcurrentDictionary<string, object>(); //for (int i = 0; i < MAXITEMS; i++) //{ // cdictionary[i.ToString()] = i; //} lisw.Stop();
以前より、高速化されています。
もう少し高速化できないですかね。今日はもう眠いのでここまでにします。(手抜き....)