【发布时间】:2014-08-04 02:09:45
【问题描述】:
有谁知道我是否需要一个锁来获取列表中的项目数?
代码行:
System.Web.HttpContext.Current.Application["Name"] as List<Object>
在列表中添加或删除对象时,我已经在进行锁定。
【问题讨论】:
-
是的,你需要一把锁。如果您写入列表并读取其计数,则需要在两者周围加锁。如果只读不写,则不需要锁。
-
考虑使用来自
System.Collections.Concurrent的线程安全集合。但即便如此,您也需要了解它们的精确语义。线程安全很棘手。
标签: c# multithreading list thread-safety