다음 개체 스레드가 안전합니까? 하나의 인스턴스를 만들고 두 개 이상의 스레드를 사용하여이 방법을 사용하는 것이 좋을까요?다음 객체 스레드가 안전합니까?
public class ASyncBuffer<T>
{
readonly object _locker = new object();
private T _value;
private bool _dirty;
public T GetValue()
{
lock (_locker)
{
_dirty = false;
return _value;
}
}
public void SetValue(T value)
{
lock (_locker)
{
_dirty = true;
_value = value;
}
}
public bool Dirty
{
get
{
lock (_locker)
{
return _dirty;
}
}
}
}
'readonly object _locker'에'private'를 추가하십시오. 그것 없이는 프로젝트의 다른 객체가'_locker'를보고 자체 잠금을 추가 할 수있었습니다. –
_locker를 잠그고 잠그지 않는 이유 (this)? –
@ Hand-E-Food, 아니요, 기본적으로'private'입니다. 더 명시 적으로 말하면 더 낫습니다. –