AspComet.Client.FlushQueue C# (CSharp) Метод

FlushQueue() публичный Метод

public FlushQueue ( ) : void
Результат void
        public void FlushQueue()
        {
            if (this.messageQueue.Count > 0 && this.CurrentAsyncResult != null)
            {
                lock (syncRoot) // double checked lock
                {
                    if (this.messageQueue.Count > 0 && this.CurrentAsyncResult != null)
                    {
                        IEnumerable<Message> response = this.GetMessages();
                        this.CurrentAsyncResult.CompleteRequestWithMessages(response);
                        this.CurrentAsyncResult = null;
                    }
                }
            }
        }

Usage Example

Пример #1
0
        public void HandleMessages(Message[] messages, CometAsyncResult asyncResult)
        {
            // Do this before we process the messages in case it's a disconnect
            Client sendingClient = GetSenderOf(messages);

            IMessagesProcessor processor = this.CreateProcessorAndProcess(messages);

            if (sendingClient == null)
            {
                asyncResult.CompleteRequestWithMessages(processor.Result);
                return;
            }

            if (sendingClient.CurrentAsyncResult != null)
            {
                sendingClient.FlushQueue();
            }

            sendingClient.CurrentAsyncResult = asyncResult;
            sendingClient.Enqueue(processor.Result);

            if (processor.ShouldSendResultStraightBackToClient)
            {
                sendingClient.FlushQueue();
            }
        }