0 out of 1 rated this helpful - Rate this topic

SynchronizedCollection<T> Class

Provides a thread-safe collection that contains objects of a type specified by the generic parameter as elements.

Namespace:  System.Collections.Generic
Assembly:  System.ServiceModel (in System.ServiceModel.dll)
[ComVisibleAttribute(false)]
public class SynchronizedCollection<T> : IList<T>, 
	ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

Type Parameters

T

The type of object contained as items in the thread-safe collection.

The SynchronizedCollection<T> stores data in a List<T> container and provides an object that can be set and used to synchronize access to the collection so that it is thread-safe. The IList<T> container can be recovered using the Items method. The synchronized object can be recovered using the SyncRoot property. It can only be set using one of the constructors that take the syncRoot parameter.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Documentation Error
Can someone from Microsoft correct this documentation page? As also pointed out in previous post, 'thread safety' section contradicts with the class details.
I believe it to be thread safe and require the correction to be in place.
Thread Safe or Not?
The description claims it's thread safe but the Thread Safety section says it's not guaranteed to be thread safe. So does this class just give me a SyncRoot to use to make thread safe calls? Do I still have to wrap the instance methods in a "lock". I would assume so.