2011-08-31 26 views
0

Array.Contains在以下上下文中是線程安全的。Array.Contains線程在只讀數組上安全

一個靜態數組被聲明並用函數中的4個元素初始化。

Static validRotations() As Integer = {0, 90, 180, 270} 

然後只能在同一函數中使用validRotations.Contains(rotation)進行訪問。

該函數隨時從多個不同的線程中調用。

回答

2

一般來說,不可變結構是線程安全的。

如果數據永不改變,您可以安全地從多個線程訪問它。

問題與多線程只有當您更改數據發生(更新/添加)。

1

這將是安全的,只要你不修改陣列(在你的情況,你是不是)。

這被編譯的類內的局部靜磁場,並且通過任意的方法在使用前進行初始化。由於它沒有被改變,只讀的,它基本上只是在做陣列並行讀取,這是安全的。