Exemplo n.º 1
0
        private async void Push(Object state)
        {
            if (Queue.Count == 0)
            {
                return;
            }

            var ss = Consumers.ToValueArray();

            if (ss.Length == 0)
            {
                return;
            }

            while (Queue.Count > 0)
            {
                // 消息出列
                var msg = Queue.Dequeue();
                // 向每一个订阅者推送消息
                try
                {
                    await Dispatch(msg, ss);
                }
                catch { }
            }
        }
Exemplo n.º 2
0
Arquivo: Topic.cs Projeto: eboxmaker/X
        private async void Push(Object state)
        {
            if (Queue.Count == 0)
            {
                return;
            }

            var ss = Consumers.ToValueArray();

            if (ss.Length == 0)
            {
                return;
            }

            // 消息出列
            Message msg = null;

            while (Queue.TryDequeue(out msg))
            {
                // 向每一个订阅者推送消息
                try
                {
                    await Dispatch(msg, ss);
                }
                catch { }
            }
        }