揮発性アイテムを含む配列が必要ですが、それを行う方法が見つかりません。
private volatile T[] _arr;
これは、_arr 参照が揮発性であることを意味しますが、_arr オブジェクト自体の内部の項目については何も保証しません。
_arr の項目を揮発性としてマークする方法はありますか?
ありがとう。
編集:
Binarycoder の回答に従って構築された次のコード。このコードはスレッドセーフで使用できますか?
public class VolatileArray<T>
{
private T[] _arr;
public VolatileArray(int length)
{
_arr = new T[length];
}
public VolatileArray(T[] arr)
{
_arr = arr;
}
public T this[int index]
{
get
{
T value = _arr[index];
Thread.MemoryBarrier();
return value;
}
set
{
Thread.MemoryBarrier();
_arr[index] = value;
}
}
public int Length
{
get { return _arr.Length; }
}
}