当前位置: 代码迷 >> C# >> 今日运行windform,发现一个Dictionary的bug
  详细解决方案

今日运行windform,发现一个Dictionary的bug

热度:304   发布时间:2016-05-05 05:09:48.0
今天运行windform,发现一个Dictionary的bug
我的操作系统是windows Server 2008 x64,运行winform的时候,对Dictionary累加值.运行的时候,项目一闪而过,于是我在Project的Properties上选择运行的项目和平台,都一样.

实在想不通了,将代码移植到webform,运行的时候在浏览器中报错,说'
已添加了具有相同键的项。

于是我修正代码,重新在windform上运行,发现真的可以运行.windform不给力哈.
------解决思路----------------------
这是bug????
字典本来就不许存在相同的键值,如果你想要允许相同键值的,你应该要List<KeyValuePair>或者ILookUp

然后根据你的描述,可以猜测你最大的可能是
static Dictionary dic;
public void SetDic(T1 x, T2 y)
{
    dic.Add(x,y);
}

你应该先去了解下winform与webform在运行上的差异
最基本的就是:
winform是运行在客户端的,只有一个用户
webform是运行在服务器上的,是多个用户
------解决思路----------------------
windform是个啥....

不如LZ去试试ConcurrentDictionary看有没有这个问题....
------解决思路----------------------
自己的代码出现问题应该先考虑自己是不是哪里错了,不是直接推到微软的类库或者编译器上,你要知道大家做C#都是用这些。
还有,断点中不到只能说明你没执行到这,不是这里有BUG,是你前面有BUG
------解决思路----------------------
网站也不是一定能报出错误来,有些异常可能直接导致页面无响应,甚至IIS重启
控制台程序也可能导致闪退
winform闪退,你也找找代码原因,是否使用了release版,并且没有加try,catch,导致出错直接崩溃,而没有任何提示
------解决思路----------------------
引用:
Quote: 引用:

网站也不是一定能报出错误来,有些异常可能直接导致页面无响应,甚至IIS重启
控制台程序也可能导致闪退
winform闪退,你也找找代码原因,是否使用了release版,并且没有加try,catch,导致出错直接崩溃,而没有任何提示
就算是release版,没有try。。。catch

如果是VSF5启动,UI线程的异常的话,应该会调到代码行,提示错误吧?

release版本来就是不能调试的,即使用F5执行也不会定位到代码行
而且楼主所说的一闪而过,应该是运行时,而不是调试阶段了
  相关解决方案