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)
{
....
}
また、このエラーが常に発生しているわけではないことにも言及する必要があります。アプリケーションを起動するときだけです。何がこれを引き起こしているのでしょうか?同期を間違っている方法ですか、それとも何か他のことですか?