/// <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!"); } } } }
/// <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); } }
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(); }