private AsyncExecutionResult TryExecuteSingleBufferAsync(Memory <byte> memory, AsyncExecutionQueue executionQueue, IAsyncExecutionResultHandler callback, int data)
        {
            Socket socket = Socket !;

            executionQueue.AddWrite(socket.SafeHandle, memory, callback, data);
            return(AsyncExecutionResult.Executing);
        }
        private AsyncExecutionResult TryExecuteMultipleBuffersAsync(IList <ArraySegment <byte> > buffers, AsyncExecutionQueue executionQueue, IAsyncExecutionResultHandler callback, int data)
        {
            Socket        socket = Socket !;
            Memory <byte> memory = buffers[_bufferIndex].Slice(_bufferOffset);

            executionQueue.AddWrite(socket.SafeHandle, memory, callback, data);
            return(AsyncExecutionResult.Executing);
        }