Example #1
0
        public Task <bool> ConnectAsync()
        {
            this.InitConnection();
            if (_redisSocket.Connected)
            {
                _connectionTaskSource.SetResult(true);
            }

            if (!_asyncConnectionStarted && !_redisSocket.Connected)
            {
                lock (_asyncConnectArgs)
                {
                    if (!_asyncConnectionStarted && !_redisSocket.Connected)
                    {
                        _asyncConnectionStarted = true;
                        if (!_redisSocket.ConnectAsync(_asyncConnectArgs))
                        {
                            OnSocketConnected(_asyncConnectArgs);
                        }
                    }
                }
            }

            return(_connectionTaskSource.Task);
        }
Example #2
0
        public Task <bool> ConnectAsync()
        {
            if (_redisSocket.Connected)
            {
                this.SetConnectionTaskSourceResult(true, null, false);
                return(Task.FromResult(true));
            }

            var tcs = new TaskCompletionSource <bool>();

            _connectionTaskSource.Enqueue(tcs);

            if (!_asyncConnectionStarted && !_redisSocket.Connected)
            {
                lock (_asyncConnectArgs) {
                    if (!_asyncConnectionStarted && !_redisSocket.Connected)
                    {
                        _asyncConnectionStarted = true;
                        if (!_redisSocket.ConnectAsync(_asyncConnectArgs))
                        {
                            OnSocketConnected(_asyncConnectArgs);
                            this.SetConnectionTaskSourceResult(false, null, false);
                        }
                    }
                }
            }

            return(tcs.Task);
        }
Example #3
0
 public Task <bool> ConnectAsync()
 {
     return(_redisSocket.ConnectAsync(_endPoint));
 }