【发布时间】:2012-09-15 07:25:03
【问题描述】:
我目前正在使用包装为 Hashtable 的 Hashtable。同步作为库中的一个简单缓存,可供多线程环境(例如 asp.net)使用 - 这是否适合用于此集合?我知道 .Net 4.0 中有更合适的结构可用,但我坚持使用 .Net 3.5。
如果有什么不同,这个缓存会被频繁读取,并且很少写入(但需要保持线程安全)。
基本用法如下:
Private Shared ReadOnly ExpressionCache As Hashtable = Hashtable.Synchronized(New Hashtable())
..snip...
If Not ExpressionCache.ContainsKey(myKey) Then
ExpressionCache(myKey) = myExpensiveOperationToInit()
End If
Return ExpressionCache(myKey)
..snip..
我在这里做了一些潜在危险的事情吗,或者这是一个可以接受的用例?
【问题讨论】:
标签: .net collections hashtable