У меня была следующая строка в классе, который я использовал.
private static readonly LazyInit<TestClass> _instance = new LazyInit<TestClass>(() => new TestClass(), LazyInitMode.EnsureSingleExecution);
Однажды я захотел воспользоваться всеми новыми возможностями, которые входят в .NET 4, установил его, и ад сломался.
Мой LazyInit больше не работал.Таким образом, я заменил каждый случай на Lazy , но как насчет LazyInitMode.EnsureSingleExecution
?
Я думал, что это будет LazyThreadSafetyMode.ExecutionAndPublication
.
private static Lazy<LookupService> s_instance = new Lazy<LookupService>(() => new LookupService(), LazyThreadSafetyMode.ExecutionAndPublication);
Являются ли эти два уклонения равноправными?