void ProcessNext(IAsyncResult result) { PollContext context = (PollContext)result.AsyncState; if (!context.PollAborted) { try { context.Processor(result, context); } catch (Exception e) { this.pollContext = null; context.Close(); if (!context.PollAborted) { this.FaultAllSubscriptions(e); } } } else { this.pollContext = null; context.Close(); } }
void ProcessPollRead(IAsyncResult result, PollContext context) { int read = context.ResponseStream.EndRead(result); this.ParseMultipartMime(read, context.ParsingContext); if (read > 0) { this.EnsureRoomInBuffer(); context.ResponseStream.BeginRead(this.buffer, this.offset + this.count, this.buffer.Length - this.offset - this.count, this.processNext, context); } else { context.Close(); this.pollContext = null; if (this.subscriptions.Count > 0) { this.StartPoll(); } } }