示例#1
0
        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);
        }