Я объявил словарь словарей:
Dictionary<String, Dictionary<String, String>> values;
У меня есть получатель, чтобы получить словарь по определенному индексу:
public Dictionary<String,String> get(String idx)
{
lock (_lock)
{
return values[moduleName];
}
}
Как видите, я работаю в многопоточной среде.
У меня вопрос, нужно ли мне возвращать копию моего словаря, чтобы быть в потоке безопасным, как это:
public Dictionary<String,String> get(String idx)
{
lock (_lock)
{
return new Dictionary<string, string>(values[moduleName]);
}
}
Если я не сделаю, чтобы класс, вызывающий метод получения, получил копию (поэтому, если я удалю этот словарь из моего Dictionary<String, Dictionary<String, String>>
, он все еще будет работать)?
Приветствия
Thierry.