您的位置:首页 > 其它

这问题是我的错还是.Net的bug

2009-01-07 16:43 260 查看
在使用Dictionary<T,T1>的Add方法,内部竟然抛出"未将对象引用设置到对象的实例。",这个错误只有在并发的时候出现。

代码如下:

Code

internal static string GetParamName()

{

Dictionary<int, ParamNameSeed> seedTable = GetSeedTable();

int id = System.Threading.Thread.CurrentThread.ManagedThreadId;

if (!seedTable.ContainsKey(id))

seedTable.Add(id, new ParamNameSeed());

ParamNameSeed pns = mSeed[id];

if (pns.Value > 100)

pns.Value = 0;

else

pns.Value++;

return "p" + pns.Value;

}

static Dictionary<int, ParamNameSeed> mSeed =null; //new Dictionary<int, ParamNameSeed>();

static object mLockSeed = new object();

static Dictionary<int, ParamNameSeed> GetSeedTable()

{

if(mSeed==null)

{

lock (mLockSeed)

{

if (mSeed == null)

mSeed = new Dictionary<int, ParamNameSeed>();

}

}

return mSeed;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐