c# - List<T>.Contains() 是线程安全调用 - C#

标签 c# thread-safety

我的理解是,如果您在 C# 中使用泛型列表 (List),那么它可以支持多个并发读取器,但只能支持一个写入器。当您将编写器引入混合时,您还必须提供同步结构以使操作线程安全。

List.Contains 是否被视为读取操作?换句话说,如果我调用这个方法,我是否需要担心写入者可能同时写入这个列表?

最佳答案

是的,你应该。基本上,如果列表可能同时用于写入,我会同步任何操作。

一般来说,我发现集合分为两类 - 一种是创建、初始化然后再也不会更改(线程安全),另一种是随着时间的推移而发生变化(非线程安全,所有访问都锁定)。

关于c# - List<T>.Contains() 是线程安全调用 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/738444/

相关文章:

c# - 对 PInvoke 函数 xxx 的调用使堆栈不平衡

javascript - 为什么记录记录器/webBot 在刷新网页后会存储之前对话的事件?

C#:一种将单行 XML 文件转换为人类可读多行的简单方法

java - 变量的线程安全访问

java - JIT 会优化这段代码吗?是否需要同步?

c# - 为什么在修改所选项目时会在 ListBox 中触发 SelectedIndexChanged 事件?

java - Android - 错误线程和按钮仍然可点击

java - 如何对并发映射的值进行原子操作?

python - Queue.Queue 与 collections.deque

c# - 如何将文件路径数组转换为分层 JSON 结构