コード例 #1
0
        public void Add(MicroThreadCallbackNode node)
        {
            if (First == null)
            {
                First = node;
            }
            else
            {
                Last.Next = node;
            }

            Last = node;
        }
コード例 #2
0
        public bool TakeFirst(out MicroThreadCallbackNode callback)
        {
            callback = First;

            if (First == null)
            {
                return(false);
            }

            First         = callback.Next;
            callback.Next = null;

            return(true);
        }
コード例 #3
0
ファイル: MicroThread.cs プロジェクト: vol16bit/xenko
        private MicroThreadCallbackNode NewCallback()
        {
            MicroThreadCallbackNode node;
            var pool = Scheduler.callbackNodePool;

            if (Scheduler.callbackNodePool.Count > 0)
            {
                var index = pool.Count - 1;
                node = pool[index];
                pool.RemoveAt(index);
            }
            else
            {
                node = new MicroThreadCallbackNode();
            }

            return(node);
        }
コード例 #4
0
ファイル: MicroThread.cs プロジェクト: hsabaleuski/paradox
        public bool TakeFirst(out MicroThreadCallbackNode callback)
        {
            callback = First;

            if (First == null)
                return false;

            First = callback.Next;
            callback.Next = null;

            return true;
        }
コード例 #5
0
ファイル: MicroThread.cs プロジェクト: hsabaleuski/paradox
        public void Add(MicroThreadCallbackNode node)
        {
            if (First == null)
                First = node;
            else
                Last.Next = node;

            Last = node;
        }
コード例 #6
0
ファイル: MicroThread.cs プロジェクト: hsabaleuski/paradox
        private MicroThreadCallbackNode NewCallback()
        {
            MicroThreadCallbackNode node;
            var pool = Scheduler.callbackNodePool;

            if (Scheduler.callbackNodePool.Count > 0)
            {
                var index = pool.Count - 1;
                node = pool[index];
                pool.RemoveAt(index);
            }
            else
            {
                node = new MicroThreadCallbackNode();
            }

            Callbacks.Add(node);

            return node;
        }