У меня есть следующий класс.
class Test{
public HashSet<string> Data = new HashSet<string>();
}
Мне нужно изменить поле "Данные" из разных потоков, поэтому мне хотелось бы получить некоторые мнения о моей текущей поточно-безопасной реализации.
class Test{
public HashSet<string> Data = new HashSet<string>();
public void Add(string Val){
lock(Data) Data.Add(Val);
}
public void Remove(string Val){
lock(Data) Data.Remove(Val);
}
}
Есть ли лучшее решение, чтобы перейти непосредственно к полю и защитить его от параллельного доступа несколькими потоками?