У меня есть метод, который нужно вызывать не более одного раза, например, Dispose
.Теперь я понимаю, что это следующим образом:
private bool _isAlive = true;
public void Dispose()
{
if (this._isAlive)
{
this._isAlive = false;
//Do Something
}
}
Но это не потокобезопасно, потому что существует разрыв между сжатием и установкой флага _isAlive
в false.Таким образом, возможно, что более одного потока выполнят код //Do Something
.
Есть ли поточно-ориентированный вариант?