这种.Net模式的好处是什么?

TBo*_*one 5 .net synchronization design-patterns thread-safety

我一直在寻找能够提供同一类的线程安全和不安全版本的模式.这方面的技术方面非常明显.我想是希望找到命名/访问约定等...

所以我在'Systems.Collections'命名空间中到处找到这个模式:

public class WhatEv
{
    private class SyncWhatEv : WhatEv
    {
        // overrides IsSyncronized = true
        // overrides whatever else to make it thread safe
    }

    public virtual bool IsSynchronized
    {
        get { return false; }  
    } 

    public static WhatEv Synchronized(WhatEv whatEv)
    {
        return new SyncWhatEv(whatEv);
    }
}
Run Code Online (Sandbox Code Playgroud)

有许多类实现了这个:HashTable,Queue,ArrayList,Stack等......我理解继承.但是为什么要把它变成一个私有的嵌套类,并让用户跳过一个环节去实现呢?这样做有什么好处吗?

TBo*_*one -1

经过周末的思考,但没有得到进一步的答复。我决定答案是:你们都疯了。提供对象的同步版本的全部目的是为了线程安全,但线程在编译时无法要求对象的线程安全版本。该对象的验证必须在运行时进行,这是......假的。

感谢大家的意见。我很感激。