Csharp/C Sharp/Development Class/Volatile

Материал из .Net Framework эксперт
Версия от 11:43, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Access Reordering and Volatile:Use of volatile

using System;
public class Singleton
{
    static object sync = new object();
    
    static volatile Singleton singleton = null;
    
    private Singleton()
    {
    }
    
    public static Singleton GetSingleton()    
    {
        if (singleton == null)
        {
            lock(sync)
            {
                if (singleton == null)
                singleton = new Singleton();
            }
        }
        
        return(singleton);
    }
}