dictionary.TryGetValue(id, out value)) lock (lockObj) if (!dictionary.TryGetValue(id, out value)) value = ComputeValue(id); } }似乎比"lock-if“或使用ReaderWriterLockSlim执行得
下面的解决方案应该比大列表上的顺序扫描更快。首先对列表进行排序(O(NlogN)),然后对每个查询使用List<T>.BinarySearch,这是更好的性能。> collection, decimal value) var list = collection.ToList(); var index = list.BinarySearch
;运行后,is_digit()只需1秒(1161 is ),而isdigit()只需4秒(3674 Is),我知道isdigit是通过位操作实现的,isdigit()不应该比is_digit()更快吗update1update2全部进入释放模式。VS2010: is_digit:1182(ms)等位数:37