1
私は非同期コード間で情報を共有するためにCallContext.LogicalGetDataを使用しています。CallContext.LogicalSetDataのスレッドセーフな使用
私は「スレッドセーフ」な方法で呼び出しのこの種類を実行したい:
var val = CallContext.LogicalGetData(key);
if(val==null)
{
CallContext.LogicalSetData(key, initialValue);
}
return val;
それを行う方法上の任意のアイデアを?
あなたはそうです、文脈ごとにロックは必要ありません、一つのロックで十分です=)ありがとう! – David
パフォーマンス上の理由から、ヌルチェックの後にロックを入れる方が良いと思います。 – David
@David私はそれをしません。変数の読み込みはスレッドセーフでなければなりません。 –