C#:如果多个线程只读取它,我是否必须使 ArrayList 同步

标签 c# multithreading arraylist synchronized

我在类中使用静态 ArrayList 来存储有关不可更新的数据库字段的信息。我打算在构造函数中初始化它一次(init 方法调用由构造函数中的锁保护)。之后多个线程检查 arraylist 是否包含字段。我是否必须以任何方式控制此读取访问权限?例如通过调用 ArrayList.Synchronized。

最佳答案

否(并且只要在 static 构造函数中创建它,您就不需要创建它,which has an implicit multithread lock - 如果您不能这样做,您可能将要锁定)。如果您最终需要 R/W 访问,则可以使用 ReaderWriterLockSlim 来控制访问。

关于C#:如果多个线程只读取它,我是否必须使 ArrayList 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1819968/

相关文章:

c# - 编译查询没有隐式引用转换为 ObjectContext

c# - 创建类似 nhibernate 的查询生成器

c# - 在此 .net 示例中是否应通过引用传递参数?

java - 将元素添加到 ArrayList 的正确位置

java - 如何在java中使用点画线?

C# asp.net web api 返回 List<BsonDocument> 如何防止 Mongodb 序列化程序添加名称值字段?

ios - 嵌套回调强引用循环

c# - 如何知道创建的线程数并相应地限制任务

java - 在 Java 中使用多线程初始化您的应用程序

java - 使用 ArrayLists 快速排序