class SourceManager
        {
            private SourceManager() { }
            private static SourceManager sourceManager;
            public static SourceManager Instance
            {
                get
                {
                    if (sourceManager == null)
                    {
                        /*
                         
                        lock 实现方式
                        功能与以下 Interlocked.CompareExchange 相同
                         
                        lock (this)
                        {
                        if (sourceManager == null)
                        {
                            sourceManager = new SourceManager();
                        }
                        }
                         
                        */
                        Interlocked.CompareExchange<SourceManager>(ref sourceManager, new SourceManager(), null);
                    }
                    return sourceManager;
                }
            }
        }
原文:http://www.cnblogs.com/wolf12/p/4072483.html