Должен ли я иметь какой-либо механизм безопасности потока в следующих простых сборщиках и сеттерах для Словаря?Вопрос безопасности в этом случае?
При необходимости, пожалуйста, примеры как для замка, так и для ConcurrentDictionary.
public virtual void Add(IFoo foo)
{
dictionary.Add(foo.name, foo);
}
public virtual IFoo Get(string name)
{
if (!dictionary.TryGetValue(name, out IFoo foo)) return null;
return foo;
}
public virtual bool Has(string name)
{
return dictionary.TryGetValue(name, out IFoo foo);
}
public virtual IFoo Remove(string name)
{
if (dictionary.TryGetValue(name, out IFoo foo))
{
dictionary.Remove(name);
}
return foo;
}
protected readonly IDictionary<string, IFoo> dictionary = new Dictionary<string, IFoo>();
Почему вы не можете писать свои собственные примеры с замком и ConcurrentDictionary. Этот веб-сайт не является сервисом написания кода, вам нужно проявить определенную работу самостоятельно, и мы можем показать вам, какие ошибки вы совершили. –
мой первый вопрос: действительно ли нужно иметь безопасность потока в приведенном выше случае? пожалуйста, посоветуйте мне некоторые рекомендации, тогда я отредактирую – user2727195
как этот код используется? Покажите нам фактический многопоточный код, который вы использовали. – fofik