C#Array 2个线程同时读取相同的项目

Ale*_*lex 0 c# arrays multithreading thread-safety

如果我有以下2个for循环将在不同的线程上运行:

for (int ii = 1; ii < times.Length; ii+=2)
{
     if (times[ii] - times[ii - 1] > maxGap)
     return false;
}

for (int ii = 2; ii < times.Length; ii += 2)
{
      if (times[ii] - times[ii - 1] > maxGap)
      return false;
}
Run Code Online (Sandbox Code Playgroud)

这种情况可能发生在两个线程都试图从timesArray中的项读取的情况下,例如两个线程都可以同时尝试读取times[1].

鉴于这两个线程只会读取这些数组,这是一个问题,例如它是否会导致我的代码崩溃或任何其他意外的负面后果?

小智 5

如果仅执行读取操作,则不会出现问题.一起读写操作可能会导致问题.