private static Singleton _instance;
private static readonly object _lock = new object();
public static Singleton GetInstance(string value)
_instance = new Singleton();
public string Value { get; set; }
static void Main(string[] args)
Thread process1 = new Thread(() =>
TestSingleton("Object 1");
Thread process2 = new Thread(() =>
TestSingleton("Object 2");
public static void TestSingleton(string value)
Singleton singleton = Singleton.GetInstance(value);
Console.WriteLine(singleton.Value);