Ejemplo n.º 1
0
        void _FrameworkUpdate()
        {
            Logger.Info("_FrameworkUpdate begin.");

            Regulus.Utility.Poller <SoulProvider> providers = new Regulus.Utility.Poller <SoulProvider>();
            while (_Framework != null && _Framework.Update() == true && Running)
            {
                System.Threading.Thread.Sleep(0);
                Queue <SoulProvider> q = null;
                lock (_SynObject)
                {
                    if (_NewProviderQueue.Count > 0)
                    {
                        q = _NewProviderQueue;
                        _NewProviderQueue = new Queue <SoulProvider>();
                    }
                }

                if (q != null)
                {
                    foreach (var provider in q)
                    {
                        providers.Add(provider);

                        provider.BreakEvent += () =>
                        {
                            providers.Remove(p => p == provider);
                        };
                        _Framework.ObtainController(provider);
                    }
                }
                _UpdateProvider(providers.UpdateSet());
            }

            Logger.Info("_FrameworkUpdate end.");
        }
Ejemplo n.º 2
0
        void _FrameworkUpdate()
        {
            Logger.Info("_FrameworkUpdate begin.");

            Regulus.Utility.Poller<SoulProvider> providers = new Regulus.Utility.Poller<SoulProvider>();
            while (_Framework != null && _Framework.Update() == true && Running)
            {
                System.Threading.Thread.Sleep(0);
                Queue<SoulProvider> q = null;
                lock (_SynObject)
                {
                    if (_NewProviderQueue.Count > 0)
                    {
                        q = _NewProviderQueue;
                        _NewProviderQueue = new Queue<SoulProvider>();
                    }

                }

                if (q != null)
                {
                    foreach (var provider in q)
                    {
                        providers.Add(provider);

                        provider.BreakEvent += () =>
                        {
                            providers.Remove(p => p == provider);
                        };
                        _Framework.ObtainController(provider);
                    }
                }
                _UpdateProvider(providers.UpdateSet());

            }

            Logger.Info("_FrameworkUpdate end.");
        }