【发布时间】:2013-08-23 00:51:09
【问题描述】:
假设我们有一个属性List<Bar> Foo 正在被多个线程读取。
这样的代码有什么问题吗:
Foo = GetNewFooList();
可能导致?
PS 1:这个问题是出于好奇,我没有任何特定的代码(还)
PS 2:是的,我知道像 Foo[0]; Foo[0]; 这样的 2 次连续读取可能会返回不同的结果。这是预期的行为
PS 3:问题更多是关于意外异常或任何类型的未定义行为或任何其他副作用(不确定在这种情况下可能是什么未定义行为 -如果我知道,我不会问这个问题)
【问题讨论】:
-
能否提供更完整的代码示例。根据您具体在做什么,肯定会存在数据一致性问题。
-
@Greg Prisament:我知道数据一致性问题,我的问题更多是关于基本问题,例如意外异常等。
标签: c# .net multithreading concurrency thread-safety