SynchronizedCollection<T>
class은 .NET 2.0에서 처음 소개되었으며 스레드로부터 안전한 컬렉션 클래스를 제공합니다. 잠금을 통해이 작업을 수행하므로 모든 액세스가 lock
문으로 묶여있는 List<T>
이 있어야합니다.
System.Collections.Concurrent
네임 스페이스가 훨씬 새로운 이름입니다. .NET 4.0까지는 소개되지 않았으며 실질적으로 개선되고 다양한 선택 항목을 포함합니다. 이러한 클래스는 더 이상 스레드 안전성을 제공하기 위해 잠금을 사용하지 않으므로 여러 스레드가 동시에 데이터에 액세스하는 상황에서 더 잘 확장되어야합니다. 그러나, 이러한 옵션 중에는 IList<T>
인터페이스를 구현하는 클래스가 빠져 있습니다.
.NET Framework 4.0 버전을 대상으로하는 경우 가능하면 항상 System.Collections.Concurrent
네임 스페이스에서 제공하는 컬렉션 중 하나를 사용해야합니다. System.Collections.Generic
namespace에서 제공되는 다양한 유형의 컬렉션 중에서 선택하는 것과 마찬가지로 특정 요구 사항에 가장 적합한 기능과 특성을 갖춘 컬렉션을 선택해야합니다.
이전 버전의 .NET Framework를 대상으로하거나 IList<T>
인터페이스를 구현하는 컬렉션 클래스가 필요한 경우 SynchronizedCollection<T>
클래스를 선택해야합니다. When to Use a Thread-Safe Collection
여기를 보라 :
MSDN에이 문서는 가치가 읽기 또한 http://stackoverflow.com/questions/1946520/why-are-there-no-concurrent-collections-in-c – StuartLC