private static void OnReconnectTimerElapsed(object state) { ClientReliableDuplexSessionChannel channel = (ClientReliableDuplexSessionChannel)state; lock (channel.ThisLock) { if (((channel.State == CommunicationState.Opened) || (channel.State == CommunicationState.Closing)) && !channel.Binder.Connected) { channel.Reconnect(); } else { channel.clientSession.ResumePolling(channel.OutputConnection.Strategy.QuotaRemaining == 0); } } }
private static void StartReceivingStatic(object state) { ClientReliableDuplexSessionChannel channel = (ClientReliableDuplexSessionChannel)state; try { channel.StartReceiving(true); } catch (Exception exception) { if (Fx.IsFatal(exception)) { throw; } channel.ReliableSession.OnUnknownException(exception); } }
public DuplexClientReliableSession(ClientReliableDuplexSessionChannel channel, IReliableFactorySettings settings, FaultHelper helper, UniqueId inputID) : base(channel, settings, (IClientReliableChannelBinder)channel.Binder, helper, inputID) { this.channel = channel; }