Hashtable 的同步(线程安全)包装Hashtable 可以同时安全地支持一个编写器和多个阅读器。若要支持多个编写器,则所有操作只能通过此包装完成。枚举一个集合在本质上不是一个线程安全的过程。甚至在对集合进行同步处理时,其他线程仍可以修改该集合,这会导致枚举数引发异常。若要在枚举过程中保证线程安全,可以在整个枚举过程中锁定集合,或者捕捉由于其他线程进行的更改而引发的异常。

解决方案 »

  1.   

    public static SqlParameter[] GetCachedParameters(string cacheKey) 
    {
                              //取得缓存
    SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
    //缓存为空 不存在
    if (cachedParms == null)
    return null;
    //建参数组     长度一致
    SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
                                //克龙 参数
    for (int i = 0, j = cachedParms.Length; i < j; i++)
    clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone(); return clonedParms;
    }
      

  2.   

    ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemCollectionsHashtableClassSynchronizedTopic.htm