System.Net.StreamFramer.BeginWriteMessage C# (CSharp) Метод

BeginWriteMessage() публичный Метод

public BeginWriteMessage ( byte message, AsyncCallback asyncCallback, object stateObject ) : IAsyncResult
message byte
asyncCallback AsyncCallback
stateObject object
Результат IAsyncResult
        public IAsyncResult BeginWriteMessage(byte[] message, AsyncCallback asyncCallback, object stateObject)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            _writeHeader.PayloadSize = message.Length;
            _writeHeader.CopyTo(_writeHeaderBuffer, 0);

            if (message.Length == 0)
            {
                return _transport.BeginWrite(_writeHeaderBuffer, 0, _writeHeaderBuffer.Length,
                                                   asyncCallback, stateObject);
            }

            // Will need two async writes. Prepare the second:
            WorkerAsyncResult workerResult = new WorkerAsyncResult(this, stateObject, asyncCallback,
                                                                   message, 0, message.Length);
            
            // Charge the first:
            IAsyncResult result = _transport.BeginWrite(_writeHeaderBuffer, 0, _writeHeaderBuffer.Length,
                                 _beginWriteCallback, workerResult);

            if (result.CompletedSynchronously)
            {
                BeginWriteComplete(result);
            }

            return workerResult;
        }