マイクロソフト公式Singletonダブルロックアルゴリズム

660 ワード

Link:http://msdn.microsoft.com/en-us/library/ms998558.aspx

using System;

public sealed class Singleton
{
private static volatile Singleton instance;
private static object syncRoot = new Object();

private Singleton() {}

public static Singleton Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
instance = new Singleton();
}
}

return instance;
}
}
}