【发布时间】:2012-08-29 17:23:14
【问题描述】:
该程序有一个弹出的表单,您在几个字段中输入文本,然后按关闭。关闭后,输入的信息将保存到 newItem 类中。
当我按 F5 调试我的程序时,一切正常。但是当我从我的调试文件夹运行可执行文件时,我得到了这个错误。
System.ArgumentException: An item with the same key has already been added.
At.... line 168
这是代码。
if (!LoadedItem.Contains(newItem))
{
LoadedItem.Add(newItem);
}
我放置了一个断点,单步执行代码,一切似乎都按预期进行。如果LoadedItem 中已经有newItem,它会跳过。但由于某种原因,它似乎忽略了 .exe 中的 if 语句。
如果您需要更多信息,请告诉我。
如果有任何帮助,我将不胜感激,因为我一生都无法弄清楚为什么会发生这种情况。
【问题讨论】:
-
你在做多线程吗?
-
您是否为 newItem 的类型定义了自定义运算符?
-
是的,我正在做多线程,是的,我有 newItem 的自定义运算符。
-
我不确定你有自定义运算符是什么意思,但听起来你有多个线程同时添加到 LoadItem。尝试锁定它。 msdn.microsoft.com/en-us/library/ms173179.aspx
-
锁定它不起作用,但还是谢谢你。
标签: c# .net exception-handling visual-studio-debugging