私は SyncRoot の概念が初めてです。私が知る限り、ロックに使用されるオブジェクトは非公開にする必要があります。
ただしHashTable
、パブリック プロパティ がありSyncRoot
ます。これは、プライベート SyncRoot オブジェクトの単なるラッパーです。コレクションを列挙するときはロックすることをお勧めします。HashTable.SyncRoot
プライベートではなくなったため、デッドロックで失敗する可能性があるようです。本当にスレッドセーフですか?
独自のプライベート ロック メカニズムを作成するとどうなりますか?
private readonly object _syncObject;
どちらが優れているのか、その理由は?