这里是我的单例模式的自定义类。在这段代码中,我使用如下所示的双重检查锁定。当我在一些源上读到许多帖子时,他们说双重检查很有用,因为它阻止两个并发线程同时运行,生成两个不同的对象。如果当实例为null时,两个线程一起运行相同的代码行,那么问题是什么?searchBox = new SearchBox(); }当它出现的时候两个<em
下面的代码表示我在应用程序中使用的单例代码。假设_MyObject = New Object表示一个非常昂贵的数据库调用,在任何情况下我都不希望进行多次调用。为了确保不会发生这种情况,我首先检查_MyObject备份字段是否为null。如果是的话,我会闯入一个SyncLock,以确保每次只有一个线程能够进入这里。但是,如果两个线程在实例化单例之前通过了第一个空检查,则线程B将在线程A创建实例时位于SyncLock上。