我需要一个包含易失性项目的数组,并且无法找到这样做的方法。C#volatile数组项?
private volatile T[] _arr;
这意味着_arr引用是易失性的,但它不保证_arr对象本身内的项目的任何内容。
有什么办法可以将_arr的Items标记为volatile吗?
谢谢。
编辑:
根据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; }
}
}
这个问题需要更多的爱。 – 2012-04-27 18:36:18