2012-06-25 2 views
1

에 열거? 아니면 같이 잠금을 사용해야합니까 :ConcurentDictionary

lock(padLock) 
{ 
foreach (Subscription sub in subscriptions[ex].Values) 
         { 
          .... 
         } 
} 

올바르게 작동하게하려면 어떻게해야합니까?

답변

1

ConcurrentDictionary 의 모든 public 및 protected 구성원은 스레드로부터 안전하며 여러 스레드에서 동시에 사용할 수 있습니다.

는 그래서 그래, 당신은 당신이 그것을 반복하는 동안 다른 스레드가 Values 수집을 수정하는 경우에도 별도의 잠금 장치없이 안전합니다.

이 수정 됨 즉, 새 쌍을 추가하거나 사전에 기존 값을 변경한다는 의미입니다.