void EndPoll(IAsyncResult result) { Message message = null; try { this.outstandingPoll = null; message = PollAsyncResult <TChannel> .End(result); if (message != null && message.IsFault) { MessageFault fault = MessageFault.CreateFault(message, MakeConnectionConstants.Defaults.MaxFaultSize); MakeConnectionMessageFault wsmcFault; if (MakeConnectionMessageFault.TryCreateFault(message, fault, out wsmcFault)) { throw MakeConnectionMessageFault.CreateException(wsmcFault); } } } catch (TimeoutException) { } catch (Exception e) { EnqueueException(e); } if (message != null) { MakeConnectionDuplexClientChannel <TChannel> channelToDispatch = this.channel; if (channelToDispatch != null) { channelToDispatch.EnqueueAndDispatch(message, null, false); } } lock (ThisLock) { polling = false; if (this.channel != null && !stopPolling) { ThreadPool.QueueUserWorkItem(onEnsurePollingLater, this); } else { this.pollingComplete.Set(); } } }
public static CommunicationException CreateException(MakeConnectionMessageFault fault) { return(fault.CreateException()); }
public static CommunicationException CreateException(MakeConnectionMessageFault fault) { return fault.CreateException(); }