6

それとも、常に他のロック オブジェクトを作成する必要がありますか?

4

2 に答える 2

14

はい、それを IDictionary にキャストしてロックし.SyncRootます:

Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();

lock (((IDictionary)dic).SyncRoot)
{
    // code
}

この情報源に感謝します。

もちろん、他の人が示唆しているように、スレッドセーフな辞書もいいでしょう。

于 2009-01-04T01:54:43.843 に答える
1

任意のオブジェクトをロックできます (値型を除く)。ただし、.SyncRoot オブジェクトをロックすることをお勧めします。

于 2009-01-04T01:55:42.907 に答える