这问题是我的错还是.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;
}
代码如下:
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;
}
相关文章推荐
- 第一次怀疑是微软bug,还是我又错了?以前都是从自己身上找问题,这次想从微软身上找问题了
- 还是编码,最近老和编码打交道-_-: 关于ASP页面 post 数据到ASP.NET页面的问题
- [bug]访问ASP.NET临时文件夹的权限问题
- asp.net 2.0控件一些有可能是bug的小问题:
- [Asp.net]Uploadify所有配置说明,常见bug问题分析
- D-Day +6 of .NET 传说中的计算器问题.有BUG,解决不了,第一个程序怎么就调不好呢,高手帮忙看看
- asp.net mvc ClaimsIdentity 授权研究 (还是测试版 有bug)
- 碰到一个mysql date_format函数的问题,是用法不当还是bug?
- 关于ASP.NET网页上有部分文字乱码的问题,用utf-8还是用gb2312
- asp.net 的一个新bug. 当你的程序出问题时, 不仅仅要检查自己的代码和逻辑, 还要检查微软的代码, 累吗?
- OVS-DPDK VM出现 virtio_net virtio4: output.0:id 30 is not a head 问题 dpdk-vhost bug fix
- 选择PHP还是ASP.NET?这是个问题
- VS.NET 的问题 还是 Visual Studio Analyzer 的问题?
- 两个dropdownlist 的 postback 都发生了!bug还是viewstate 问题?
- BigDecimal四舍五入和转double遇到的问题,结果想不明白,是bug呢,还是另有深意,望高手指点
- Asp.net_解决vs运行报在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题的bug方法
- Asp.net 1.1的Bug问题
- [ASP.NET缓存BUG]这几天遇到的头痛问题之一,晚上遇到终于解决一劳永逸
- ASP.NET 2.0中母版页中引用文件路径的问题(对原处理方法中的bug进行了修改)
- .NET开发,修改信息时文本框值改变但后台获取的值还是原值BUG