Ответ 1
В .NET 4 у вас есть класс ConcurrentDictionary.
Если вам нужно использовать более старую версию .NET и хотите написать ее самостоятельно:
- завершите словарь как закрытый в своем классе
- используйте отдельный
private object lockObject
- блокировать этот
lockObject
при каждом доступе к словарю