這裏我有一段代碼,顯示了我想如何更新字典中的值的示例。 我不認爲這是最好的方法,因爲我不確定它是線程安全的。使用字典的正確方法
編輯:它只是POC代碼,我的意思是獲取鍵複製到數組,然後在Dictionary上做的東西。我不能在這裏發佈僱主的代碼,所以我舉了個例子來說明問題。
當我得到鑰匙陣列的副本時,我可能會在代碼的其他部分使用字典引用,其中可能會添加一些密鑰,然後這樣的函數將不會更新所有密鑰,因爲我已經在某些時間點。我應該子類化還是可能包裝字典並使用鎖進行操作,還是有更簡單的方法?
我應該如何以適當的方式更新值?
static void Main(string[] args)
{
Dictionary<string, int> dic = new Dictionary<string, int>();
dic.Add("Kej1",0);
dic.Add("Kej2",1);
dic.Add("Kej3", 3);
dic.Add("Kej4", 3);
String[] arr = new string[dic.Count] ;
dic.Keys.CopyTo(arr,0);
foreach (var va in arr)
{
Console.WriteLine(dic[va] + " " + va);
dic[va] = 10;
Console.WriteLine(dic[va] + " " + va);
}
Console.ReadKey();
}
不知道這個例子應該顯示什麼。你提到了多個線程,但是這個例子沒有。試着重新回答你的問題。 – Jon
這看起來像一個控制檯應用程序。您的代碼中沒有多個線程。 – Aphelion
@Jon我已經更新了描述,它只是POC代碼,有些想象會變得更加明顯,我不能在這裏發佈「不是我的代碼」。 – Mateusz