public static COMManager GetInstance(string value) { if (instance == null) { lock (_lock) { if (instance == null) { instance = new COMManager(value); } } } return(instance); }
static void Main(string[] args) { var t1 = Task.Run(() => { Thread.Sleep(300); COMManager manager = COMManager.GetInstance("Foo"); Console.WriteLine(manager.Value); }); var t2 = Task.Run(() => { COMManager manager = COMManager.GetInstance("Barr"); Console.WriteLine(manager.Value); }); Task.WaitAll(t1, t2); }