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); }
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); }
public Task <bool> ConnectAsync() { return(_redisSocket.ConnectAsync(_endPoint)); }