コード例 #1
0
        public bool TryDequeue(out T result, out QueuePrority prority)
        {
            prority = default(QueuePrority);

            if (_highQ.TryDequeue(out result))
            {
                prority = QueuePrority.High;
                return(true);
            }

            if (_normalQ.TryDequeue(out result))
            {
                prority = QueuePrority.Normal;
                return(true);
            }

            return(false);
        }
コード例 #2
0
ファイル: SyncActionQueue.cs プロジェクト: newshadowk/Lib
        private void _t_Elapsed(object sender, ElapsedEventArgs e)
        {
            Action result;

            while (_q.TryDequeue(out result))
            {
                try
                {
                    Log("[↑] " + Count);
                    result.Invoke();
                    Log("Invoke ok.");
                }
                catch (Exception ex)
                {
                    Log("Invoke failed.", ex);
                    throw;
                }
            }
        }