Поделиться через


PipeStream.WriteAsync Метод

Определение

Перегрузки

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию внутри потока на число записанных байтов и отслеживает запросы отмены.

WriteAsync(Byte[], Int32, Int32, CancellationToken)

Асинхронно записывает указанное число байтов из текущего потока в массив байтов, начиная с указанной позиции, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены.

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Исходный код:
PipeStream.Unix.cs
Исходный код:
PipeStream.Unix.cs
Исходный код:
PipeStream.Unix.cs

Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию внутри потока на число записанных байтов и отслеживает запросы отмены.

public override System.Threading.Tasks.ValueTask WriteAsync (ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.WriteAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Overrides Function WriteAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask

Параметры

buffer
ReadOnlyMemory<Byte>

Область памяти, из которой будут записываться данные.

cancellationToken
CancellationToken

Токен для отслеживания запросов отмены. Значение по умолчанию — None.

Возвращаемое значение

Задача, представляющая асинхронную операцию записи.

Исключения

Поток не поддерживает запись.

Не удается получить доступ к закрытому каналу.

Канал неисправен.

Канал еще не подключен.

-или-

Канал находится в отключенном состоянии.

-или-

Дескриптор канала не был задан. (Ваша реализация PipeStream вызвала InitializeHandle(SafePipeHandle, Boolean, Boolean)?

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

Комментарии

Метод WriteAsync позволяет выполнять ресурсоемкие операции ввода-вывода, не блокируя поток main. Это особенно важно в приложениях, где ресурсоемкая потоковая операция может заблокировать поток пользовательского интерфейса и сделать приложение таким, как если бы оно не работало. Асинхронные методы используются в сочетании с ключевыми словами async и await в Visual Basic и C#.

Используйте свойство , CanWrite чтобы определить, поддерживает ли текущий экземпляр запись.

Если операция отменена до ее завершения, возвращаемая задача содержит Canceled значение Status свойства .

Применяется к

WriteAsync(Byte[], Int32, Int32, CancellationToken)

Исходный код:
PipeStream.Unix.cs
Исходный код:
PipeStream.Unix.cs
Исходный код:
PipeStream.Unix.cs

Асинхронно записывает указанное число байтов из текущего потока в массив байтов, начиная с указанной позиции, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены.

public:
 override System::Threading::Tasks::Task ^ WriteAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task WriteAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
override this.WriteAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Overrides Function WriteAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task

Параметры

buffer
Byte[]

Буфер, из которого записываются данные.

offset
Int32

Смещение байтов (начиная с нуля) в buffer, с которого начинается копирование байтов в поток.

count
Int32

Максимальное число байтов для записи.

cancellationToken
CancellationToken

Токен для отслеживания запросов отмены. Значение по умолчанию — None.

Возвращаемое значение

Задача, представляющая асинхронную операцию записи.

Исключения

buffer имеет значение null.

offset является отрицательным значением.

-или-

count является отрицательным значением.

buffer.Length — offset меньше count.

Поток не поддерживает запись.

Не удается получить доступ к закрытому каналу.

Канал неисправен.

Канал еще не подключен.

-или-

Канал находится в отключенном состоянии.

-или-

Дескриптор канала не был задан. (Ваша реализация PipeStream вызвала InitializeHandle(SafePipeHandle, Boolean, Boolean)?

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

Комментарии

Метод WriteAsync позволяет выполнять ресурсоемкие операции ввода-вывода, не блокируя поток main. Это особенно важно в приложениях, где ресурсоемкая потоковая операция может заблокировать поток пользовательского интерфейса и сделать приложение таким, как если бы оно не работало. Асинхронные методы используются в сочетании с ключевыми словами async и await в Visual Basic и C#.

Используйте свойство , CanWrite чтобы определить, поддерживает ли текущий экземпляр запись.

Если операция отменена до ее завершения, возвращаемая задача содержит TaskStatus.Canceled значение Status свойства .

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Write(Byte[], Int32, Int32).

Применяется к