Пример #1
0
        public SystemBase[] UnregisterAll()
        {
            _lock.EnterWriteLock();

            try
            {
                var temp = new SystemBase[0];
                return(Interlocked.Exchange(ref _systems, temp));
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
Пример #2
0
        public SystemBase[] UnregisterAll()
        {
            _lock.EnterWriteLock();

            try
            {
                var temp = new SystemBase[0];
                return Interlocked.Exchange(ref _systems, temp);
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
Пример #3
0
        public void RegisterSystem(params SystemBase[] systems)
        {
            _lock.EnterWriteLock();

            try
            {
                var temp = new SystemBase[_systems.Length + systems.Length];
                Array.Copy(_systems, temp, _systems.Length);
                Array.Copy(systems, 0, temp, temp.Length - systems.Length, systems.Length);
                Interlocked.Exchange(ref _systems, temp);
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
Пример #4
0
        public void RegisterSystem(params SystemBase[] systems)
        {
            _lock.EnterWriteLock();

            try
            {
                var temp = new SystemBase[_systems.Length + systems.Length];
                Array.Copy(_systems, temp, _systems.Length);
                Array.Copy(systems, 0, temp, temp.Length - systems.Length, systems.Length);
                Interlocked.Exchange(ref _systems, temp);
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
Пример #5
0
        public void UnregisterSystem(params SystemBase[] systems)
        {
            _lock.EnterWriteLock();

            try
            {
                var list = _systems.ToList();
                foreach (var system in systems)
                {
                    list.Remove(system);
                }

                var temp = new SystemBase[list.Count];
                Array.Copy(list.ToArray(), temp, list.Count);
                Interlocked.Exchange(ref _systems, temp);
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
Пример #6
0
 public void UnregisterSystem(SystemBase system)
 {
     UnregisterSystem(new[] { system });
 }
Пример #7
0
 public void RegisterSystem(SystemBase system)
 {
     RegisterSystem(new[] { system });
 }
Пример #8
0
        public void UnregisterSystem(params SystemBase[] systems)
        {
            _lock.EnterWriteLock();

            try
            {
                var list = _systems.ToList();
                foreach(var system in systems)
                {
                    list.Remove(system);
                }

                var temp = new SystemBase[list.Count];
                Array.Copy(list.ToArray(), temp, list.Count);
                Interlocked.Exchange(ref _systems, temp);
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
Пример #9
0
 public void UnregisterSystem(SystemBase system)
 {
     UnregisterSystem(new[] { system });
 }
Пример #10
0
 public void RegisterSystem(SystemBase system)
 {
     RegisterSystem(new[] { system });
 }