System.Net.Sockets.NetworkStream.WriteAsync C# (CSharp) Метод

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

public WriteAsync ( byte buffer, int offset, int size, CancellationToken cancellationToken ) : System.Threading.Task
buffer byte
offset int
size int
cancellationToken System.Threading.CancellationToken
Результат System.Threading.Task
        public override Task WriteAsync(byte[] buffer, int offset, int size, CancellationToken cancellationToken)
        {
#if netcore50
            if (cancellationToken.IsCancellationRequested)
            {
                return Task.FromCanceled<int>(cancellationToken);
            }

            return Task.Factory.FromAsync(
                (bufferArg, offsetArg, sizeArg, callback, state) => ((NetworkStream)state).BeginWrite(bufferArg, offsetArg, sizeArg, callback, state),
                iar => ((NetworkStream)iar.AsyncState).EndWrite(iar),
                buffer,
                offset,
                size,
                this);
#else
            // Use optimized Stream.WriteAsync that's more efficient than
            // Task.Factory.FromAsync when NetworkStream overrides Begin/EndWrite.
            return base.WriteAsync(buffer, offset, size, cancellationToken);
#endif
        }

Usage Example

Пример #1
2
        public async Task SendMessageAsync(Message message)
        {
            try
            {
                await semaphore.DoAsync(async () =>
                {
                    using (var stream = new NetworkStream(this.socket))
                    {
                        var stopwatch = new Stopwatch();
                        stopwatch.Start();

                        var byteStream = new MemoryStream();
                        NetworkEncoder.EncodeMessage(byteStream, message);

                        var messageBytes = byteStream.ToArray();
                        await stream.WriteAsync(messageBytes, 0, messageBytes.Length);

                        stopwatch.Stop();
                        //Debug.WriteLine("-------------------------");
                        //Debug.WriteLine(string.Format("Sent {0} in {1} ms\nPayload: {2}", message.Command, stopwatch.ElapsedMilliseconds, message.Payload.ToHexDataString()));
                    }
                });
            }
            catch (Exception e)
            {
                Fail(e);
            }
        }
All Usage Examples Of System.Net.Sockets.NetworkStream::WriteAsync