Beispiel #1
0
        public ConcurrentList(ILockingMechanism lockingMechanism)
        {
            Ensure.IsNotNull(lockingMechanism, nameof(lockingMechanism));

            _locking = lockingMechanism;
            _items   = new List <T>();
        }
        public SynchronizedValue(ILockingMechanism lockingMechanism, T value)
        {
            Ensure.IsNotNull(lockingMechanism, nameof(lockingMechanism));

            _lockingMechanism = lockingMechanism;
            _value            = value;
        }
Beispiel #3
0
        public ConcurrentList(IEnumerable <T> collection, ILockingMechanism lockingMechanism)
        {
            Ensure.IsNotNull(lockingMechanism, nameof(lockingMechanism));
            Ensure.IsNotNull(collection, nameof(collection));

            _locking = lockingMechanism;
            _items   = new List <T>(collection);
        }
Beispiel #4
0
        public ExtendedObservableCollection(SynchronizationContext synchronizationContext,
                                            SynchronizationMethod synchronizationMethod, Func <ILockingMechanism> lockingMechanism, IEnumerable <T> items)
        {
            Ensure.IsNotNull(synchronizationMethod, nameof(synchronizationMethod));
            Ensure.IsNotNull(lockingMechanism, nameof(lockingMechanism));
            Ensure.IsNotNull(items, nameof(items));

            _synchronizationContext = synchronizationContext;
            _synchronizationMethod  =
                _synchronizationContext != null ? synchronizationMethod : SynchronizationMethod.None;
            _lockingMechanism = lockingMechanism();

            _items                = new List <T>(items);
            _updateCounter        = new SynchronizedValue <int>(lockingMechanism());
            _collectionHasChanged = new SynchronizedValue <bool>(lockingMechanism());
            _reentrancyMonitor    = new SimpleMonitor();
        }
 public SynchronizedValue(ILockingMechanism lockingMechanism) : this(lockingMechanism, default)
 {
 }