У меня есть класс, в котором хранится словарь. Поток может редактировать этот словарь в другой функции. Учитывая, что он пишет в этот словарь, я проверяю, что он обернут в замок. Например:
public void SetModuleLogLevel(string module, LogLevel logLevel)
{
if (module == "Other" || !this._moduleToLogLevel.ContainsKey(module))
return;
lock (this._lock)
{
this._moduleToLogLevel[module] = logLevel;
}
}
У меня есть еще одна функция, которая возвращает значение из этого словаря. Например,
private bool IsUrgentToLog(string module, LogLevel logLevel)
{
if (!this._moduleToLogLevel.ContainsKey(module)) return false;
lock (this._lock)
{
if (this._moduleToLogLevel[module] < logLevel) return true;
}
return false;
}
Учитывая, что я читаю только из этого словаря в этой функции, нужна ли ему блокировка?