Skip to main content
 首页 » 编程设计

c#之测试条件然后锁定然后重新测试条件是否好

2024年01月29日29开发

<分区>

Possible Duplicate:
Double-checked locking in .net

编辑:大量编辑以澄清这个问题与单例无关

我发现自己写的代码是这样的:

    if(resourceOnDiskNeedsUpdating) 
    { 
        lock(lockObject) 
        { 
            if(resourceOnDiskNeedsUpdating) // has a previous thread already done this? 
                UpdateResourceOnDisk(); 
        } 
    } 
    return LoadResourceFromDisk(); 

UpdateResource() 是一个缓慢的操作。 这种模式有意义吗?
有更好的选择吗?