public override Task <bool> SetAsync(string key, string value) { var bytes = Encoding.UTF8.GetBytes($"*3\r\n$3\r\nSET\r\n${key.Length}\r\n{key}\r\n${value.Length}\r\n{value}\r\n"); var task = CreateTask(null, TaskCreationOptions.RunContinuationsAsynchronously); if (IsHanding) { _other.SetAndWaitAsync(bytes, task); } else { SetAndWaitAsync(bytes, task); //if (TryGetSendLock()) //{ // _taskBuffer.Append(task); // _sender.WriteAsync(bytes); // ReleaseSend(); //} //else //{ // _other.SetAndWaitAsync(bytes, task); //} } return(task); }