こんにちは、メソッドで writerreaderlock を使用する必要があります。正しい使い方が知りたいです。
ObjectA の辞書を取得しました
public class ObjectA
{
public ReaderWriterLock RWL {get;set;}
public ObjectB obj {get;set;}
public ObjectA()
{
RWL = new ReaderWriterLock();
}
}
public class ObjectB
{
int TTL {get;set;}
string Value {get;set;}
}
私のメソッドでは、ObjectA の辞書を使用します。キーは Guid であるため、dict[guid] を呼び出すと、常に ObjectA のインスタンスが返されると仮定します (例として)。
public foo()
{
ObjecA objA = dict[guid];
objA.RWL.AcquireReaderLock(500);
if(objA.obj.TTL<=0)
{
objA.obj.RWL.AcquireWriterLock(1000);
objA.obj.Value = DateTime.Now().ToString();
objA.obj.RWL.ReleaseWriterLock();
}else{
int ttl = objA.obj.TTL;
Interlocked.Decrement(ref ttl);
}
objA.RWL.ReleaseReaderLock();
}
リーダーとライターの使用方法がよくわかりません。条件付き検証を使用して、リーダーとライターのロックをどのように使用する必要がありましたか?