0
나는 데이터의 목록을 보유하고 클래스가 (예 : 목록), 클래스에서 사용할 수있는 방법이 있습니다를더 나은 lock 문은 무엇입니까?
- 목록을 업데이트 할
- 삽입 새 항목을 나열하고
- 는에서 모든 항목을 삭제 목록
위의 삽입, 업데이트 및 삭제 방법이 여러 스레드에서 호출되고 있습니다. 그래서 다음과 같이 잠금을 제공해야합니다. Object locker = new Object();
// Insert method
lock(locker)
{
// Insert to list
}
// Update method
lock(locker)
{
// Update the list
}
지금 내 질문 방법을 잠금의 종류는 위와 같이 잠금 객체를 사용하거나 아래 목록 잠금의 "syncroot"방법을 사용할지 여부를, 선한이다. 제발 조언.
// Insert method
lock(((ICollection)myList).SynRoot)
{
// Insert to list
}
// Update method
lock(((ICollection)myList).SynRoot)
{
// Update the list
}
감사
.NET 4 년 이후가 전문 컬렉션을 제안 'ConcurrentBag'와 같은 프레임 워크에서 이들 중 하나를 사용했는지 살펴 보았습니까? –