Пример #1
0
        /// <summary>
        /// 连接到redisServer
        /// </summary>
        public void Connect()
        {
            lock (_syncLocker)
            {
                if (!IsConnected)
                {
                    var autoResetEvent = new AutoResetEvent(false);

                    _cnn.ConnectAsync((s) =>
                    {
                        if (s == System.Net.Sockets.SocketError.Success)
                        {
                            IsConnected = true;
                        }
                        autoResetEvent.Set();
                    });
                    var result = autoResetEvent.WaitOne(10 * 1000);
                    if (!result || !IsConnected)
                    {
                        _cnn.Disconnect();
                        throw new Exception("无法连接到redis server!");
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 连接到redisServer
        /// </summary>
        public bool Connect()
        {
            lock (_syncLocker)
            {
                if (!IsConnected)
                {
                    var autoResetEvent = new AutoResetEvent(false);

                    _cnn.ConnectAsync((s) =>
                    {
                        if (s == System.Net.Sockets.SocketError.Success)
                        {
                            IsConnected = true;
                        }
                        autoResetEvent.Set();
                    });

                    autoResetEvent.WaitOne(10 * 1000);

                    if (!IsConnected)
                    {
                        _cnn.Disconnect();
                        return(false);
                    }
                    return(true);
                }
                return(true);
            }
        }
Пример #3
0
        public ServiceConsumer(Uri uri)
        {
            _rClient          = new RClient(uri);
            _rClient.OnError += _rClient_OnError;
            _rClient.OnMsg   += _rClient_OnMsg;

            AutoResetEvent autoResetEvent = new AutoResetEvent(false);

            _rClient.ConnectAsync((s) =>
            {
                if (s == System.Net.Sockets.SocketError.Success)
                {
                    _isConnected = true;
                }
                else
                {
                    throw new RPCSocketException("ServiceConsumer.ConnectAsync 连接失败!");
                }
                autoResetEvent.Set();
            });
            autoResetEvent.WaitOne();
            autoResetEvent.Close();
            KeepAlive();
        }