Прочитать на английском

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


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);

Параметры

buffer
ReadOnlyMemory<Byte>

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

cancellationToken
CancellationToken

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

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

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

Исключения

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

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

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

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

-или-

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

-или-

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

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

Комментарии

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

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

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

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

public override System.Threading.Tasks.Task WriteAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);

Параметры

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).

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1