我需要一個線程安全版本SortedList<T,U>
,但不像generic formnon-generic form似乎沒有Synchronized
功能。我可以使用不同的技巧來獲得線程安全版本嗎?或者我將不得不手動使用lock (SyncRoot)
手動?System.Collections.Generic.SortedList的同步版本?
1
A
回答
2
簡短回答:沒有,你必須去度假lock
。
即使在新的命名空間System.Collections.Concurrent
中有線程安全集合,線程安全版本SortedList<T, U>
也不存在。 如果您需要保護SortedList<T, U>
的每個調用lock
或ReadWriterLockSlim
(如果適用),或者爲SortedList<T, U>
創建線程安全包裝(與Synchronized()
一樣),以保護每個調用。
再回應:不,你沒有什麼準備,但你可以使用共同OrderablePartitioner<TSource>
(提取每次一個項目)和ConcurrentBag<T>
達到同樣的效果。坦率地說,我不知道這個策略是否有任何ROI,因爲如果你不需要分區器,那麼你簡單地增加一些不應該的複雜性。
相關問題
- 1. node.js http.get的同步版本
- 2. 在System.Collections.Generic.SortedList
- 3. 異步方法的同步版本
- 4. AVURLAsset loadValuesAsynchronouslyForKeys,同步版本?
- 5. 同步架構版本
- 6. 同步獲取nginx版本?
- 7. 同步版本編號
- 8. svn中的文件的同步版本
- 9. 爲什麼我的程序的異步版本比同步版本慢?
- 10. Files.copy的阻止/同步版本
- 11. 如何創建NSURLConnection的同步版本
- 12. 兩個項目版本的同步
- 13. SetByIndex相當於System.Collections.Generic.SortedList
- 14. 從同步任務調用方法的異步或同步版本更好嗎?
- 15. 多個同步版本控制系統?
- 16. CloudQueueMessage.GetMessagesAsync掛起,同步版本不掛載
- 17. 如何同步兩個Subversion版本庫?
- 18. 同步版本控制和工件庫
- 19. 同步框架範圍版本
- 20. git:如何同步到最新版本
- 21. 同步框架版本升級問題
- 22. 版本控制:多版本地獄,文件同步
- 23. TFS 2008:如何將版本名稱與版本號碼同步?
- 24. iOS版 - API同步
- 25. 自動化的GIT repo同步,得到舊的提交版本,驗證版本
- 26. 在異步版本中包裝同步調用
- 27. GIT:同步本地文件到新的github版本庫
- 28. ObjectCache的異步版本?
- 29. Google API的異步版本?
- 30. Ant腳本同步本地與遠程版本