Ho bisogno di un array con elementi volatili e non riesco a trovare un modo per farlo.Elementi di array C# volatile?
private volatile T[] _arr;
Ciò significa che il riferimento _arr è volatile, ma non garantisce nulla circa gli elementi all'interno dell'oggetto _arr stessa.
Esiste un modo per segnalare articoli del _arr come volatile?
Grazie.
EDIT:
Il seguente codice costruito secondo la risposta di binarycoder. È sicuro utilizzare questo codice thread-safe?
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; }
}
}
Questa domanda ha bisogno di più amore. –