internal class Employee
{
internal int concurrentState;
internal void SetConcurrentState(int concurrentStatus)
{
Interlocked.Exchange(ref this.concurrentState, concurrentStatus);
}
internal int GetConcurrentState()
{
return Interlocked.CompareExchange(ref this.concurrentState,
0,
-this.concurrentState);
}
}
Как сказано в заголовке, является ли это лучшим способом реализации параллельного (атомарного) целого числа в C#? Мне нужно только получить значение, чтобы запутанный метод get не выполнял операцию сравнения. Кажется, Microsoft предложила бы лучший способ.
[code] internal class Employee { internal int concurrentState;
internal void SetConcurrentState(int concurrentStatus) { Interlocked.Exchange(ref this.concurrentState, concurrentStatus); } internal int GetConcurrentState() { return Interlocked.CompareExchange(ref this.concurrentState, 0, -this.concurrentState); } } [/code] Как сказано в заголовке, является ли это лучшим способом реализации параллельного (атомарного) целого числа в C#? Мне нужно только получить значение, чтобы запутанный метод get не выполнял операцию сравнения. Кажется, Microsoft предложила бы лучший способ.