Multiton pattern: Difference between revisions

Content deleted Content added
No edit summary
C#: Cleaned up to remove lock by using a ConcurrentDictionary
Line 70:
<source lang=CSharp>
using System.Collections.Generic;
using System.Collections.Concurrent;
 
namespace MyApplication
{
class FooMultiton {
}{
private static readonly DictionaryConcurrentDictionary<object, FooMultiton> _instances = new DictionaryConcurrentDictionary<object, FooMultiton>();
 
private FooMultiton() {}
}
 
public static FooMultiton GetInstance(object key) {
lock (_instances) {
_instances.TryAdd(key, new FooMultiton instance());
return if (!_instances.TryGetValue([key, out instance)) {];
instance = new FooMultiton();
_instances.Add(key, instance);
}
return instance;
}
}
}