示例#1
0
        public static GossipConnectionSession FromOpenConnection(GossipConnection connection, Action <GossipConnection> disposeAction = null)
        {
            var session = new GossipConnectionSession(connection);

            session._disposeAction = disposeAction;
            return(session);
        }
        public GossipConnectionSession CreateSession()
        {
            GossipConnection connection;

            if (_allConnections.IsEmpty)
            {
                connection = OpenNewConnection();
            }
            else
            {
                if (!_availableConnections.TryTake(out connection, ConnectionTimeout))
                {
                    connection = OpenNewConnection();
                }
                else
                {
                    connection.RecordActivity();
                }
            }
            return(GossipConnectionSession.FromOpenConnection(connection, CloseSession));
        }
 public static GossipConnectionSession FromOpenConnection(GossipConnection connection, Action<GossipConnection> disposeAction = null)
 {
     var session = new GossipConnectionSession(connection);
     session._disposeAction = disposeAction;
     return session;
 }