我在將值添加到泛型字典(WinRT C#)時收到IndexOutOfRange異常。下面是我的代碼和堆棧跟蹤異常。IndexOutOfRangeExpection發生在Dictionary.Add方法
代碼:
if (!data.TryGetValue(index, out cells))
{
cells = new CellCollection();
data.Add(index, cells);
}
堆棧跟蹤:
在System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary
2.增加(TKEY的關鍵,TValue值)
我不會」預計在添加時會出現超出範圍的異常。我的應用程序只使用單線程。 我已經添加值字典並從字典中刪除它使用GC.Collect()如果不需要。然後根據需要添加值。
任何人都可以提出任何建議來解決此異常?
我想你正在訪問一個字典在多個線程沒有適當的同步這是不安全的。你是?編輯:我看到你提到的問題*我的應用程序只使用單線程*但確保你交叉檢查,看看字典是否滑到另一個線程。 – 2014-11-05 08:31:38
如果這不是一個併發問題(或者如果您決定需要幫助解決這個問題),您將不得不發佈一個更好的問題,並提供一個完整但簡潔的代碼示例。到目前爲止,這裏的信息很少。有關發佈良好代碼示例的更多信息,請參閱http://stackoverflow.com/help/mcve。 – 2014-11-05 08:34:27
我同意這聽起來像你有多個線程,如'Parallel.ForEach'的'.AsParallel()'或什麼的。但是,我們可以看到'TKey',即'index'的類型是什麼? – 2014-11-05 08:35:55