我想添加一些元素到C#字典,但我一直在遇到一些問題。我是C#開發新手,所以我希望有人能幫助我。「一個項目有相同的密鑰已被添加」在字典
添加元素的代碼是:
if (!connections.ContainsKey(port.getParentName()))
{
connections.Add(port.getParentName(), port.getLabel() + ";" + cable + ";" + cableTemplate + "|");
}
else
{
connections[port.getParentName()] += port.getLabel() + ";" + cable + ";" + cableTemplate + "|";
}
如果密鑰媒體鏈接包含在我的口。雖然我檢查字典我越來越:
「An item with the same key has already been added」
也提我正在異步獲取數據,所以我猜想這是一個同步問題。我試圖通過鎖定的代碼塊來處理這個,但是這似乎並沒有解決問題:
System.Object lockThis = new System.Object();
lock (lockThis)
{
....
}
另外不得不提的是,我沒有得到這個錯誤所有的時間。只是偶爾在啓動應用程序時。任何想法可能會造成這種情況?我是在做同步錯誤還是其他什麼?
@ShellShock:我知道。你評論我的答案的舊版本。 – 2013-04-04 12:17:47
更多挑剔:lockObject應該具有與Dictionary相同的作用域和生命週期。 – 2013-04-04 12:20:23
非常感謝您的回答。什麼是正確的鎖定方式?我還需要這個代碼的其他部分?謝謝! – zzirna 2013-04-04 12:42:53