그래서, 내가 가지고 Dictionary<KType,VType> Foo
는
스레드 하나에있어 자체 안전 TryGetValue 스레드입니다.
이렇게 잠그려면 얼마가 필요합니까? 내가 좋아하는 뭔가를 할 수 있습니다 :
void Thread1() {
...
if (!Foo.TryGetValue(key, out v)) {
lock (syncobj) {
Foo.Add(new VType());
}
}
...
}
void Thread2() {
...
lock (syncobj) {
Foo.TryGetValue(key, out v))
}
...
}
을 Thread1 프로그램 계산의 90 %와 TryGetValue
여러 번이라고합니다. 따라서, 매번 잠금을 호출하지 않아도됩니다. 업데이 트가 TryGetValue
이 실행되는 동시에 다른 스레드에서 발생할 수있는 어떤 기회가 있다면
이게 있습니다 : http://msdn.microsoft.com/en-us/library/dd287191.aspx – asawyer
와우 ... 나는 Google에서 그것을 찾지 못했고 나는 또한 찾고있었습니다. 내가 본 모든 것은 2010 년 이전이라고 생각합니다. – Jay