PipeStream.WriteAsync Metoda

Definicja

Przeciążenia

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia, przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów i monitoruje żądania anulowania.

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

Asynchronicznie zapisuje określoną liczbę bajtów z tablicy bajtów rozpoczynającej się od określonej pozycji, zwiększa bieżącą pozycję w tym strumieniu o liczbę zapisanych bajtów i monitoruje żądania anulowania.

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Źródło:
PipeStream.Unix.cs
Źródło:
PipeStream.Unix.cs
Źródło:
PipeStream.Unix.cs

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia, przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów i monitoruje żądania anulowania.

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

Parametry

buffer
ReadOnlyMemory<Byte>

Region pamięci do zapisywania danych.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania. Wartość domyślna to None.

Zwraca

Zadanie, które reprezentuje asynchroniczny zapis operacji.

Wyjątki

Usługa Stream nie obsługuje zapisywania.

Nie można uzyskać dostępu do zamkniętego potoku.

Rura jest uszkodzona.

Rura nie została jeszcze połączona.

-lub-

Potok jest w stanie rozłączenia.

-lub-

Uchwyt potoku nie został ustawiony. (Czy wywołanie PipeStream implementacji InitializeHandle(SafePipeHandle, Boolean, Boolean)?

Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.

Uwagi

Metoda WriteAsync umożliwia wykonywanie operacji we/wy intensywnie korzystających z zasobów bez blokowania głównego wątku. Ta kwestia wydajności jest szczególnie ważna w aplikacjach, w których czasochłonna operacja strumienia może blokować wątek interfejsu użytkownika i sprawiać, że aplikacja jest wyświetlana tak, jakby nie działała. Metody asynchroniczne są używane w połączeniu ze słowami kluczowymi async i await w Visual Basic i C#.

Użyj właściwości , CanWrite aby określić, czy bieżące wystąpienie obsługuje pisanie.

Jeśli operacja zostanie anulowana przed zakończeniem, zwrócone zadanie zawiera Canceled wartość właściwości Status .

Dotyczy

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

Źródło:
PipeStream.Unix.cs
Źródło:
PipeStream.Unix.cs
Źródło:
PipeStream.Unix.cs

Asynchronicznie zapisuje określoną liczbę bajtów z tablicy bajtów rozpoczynającej się od określonej pozycji, zwiększa bieżącą pozycję w tym strumieniu o liczbę zapisanych bajtów i monitoruje żądania anulowania.

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

Parametry

buffer
Byte[]

Bufor do zapisu danych.

offset
Int32

Przesunięcie bajtów na podstawie zera, z buffer którego ma rozpocząć kopiowanie bajtów do strumienia.

count
Int32

Maksymalna liczba bajtów do zapisu.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania. Wartość domyślna to None.

Zwraca

Zadanie, które reprezentuje asynchroniczny zapis operacji.

Wyjątki

buffer to null.

Wartość jest ujemna offset .

-lub-

Wartość jest ujemna count .

buffer. Długość — offset jest mniejsza niż count.

Usługa Stream nie obsługuje zapisywania.

Nie można uzyskać dostępu do zamkniętego potoku.

Rura jest uszkodzona.

Rura nie została jeszcze połączona.

-lub-

Potok jest w stanie rozłączenia.

-lub-

Uchwyt potoku nie został ustawiony. (Czy wywołanie PipeStream implementacji InitializeHandle(SafePipeHandle, Boolean, Boolean)?

Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.

Uwagi

Metoda WriteAsync umożliwia wykonywanie operacji we/wy intensywnie korzystających z zasobów bez blokowania głównego wątku. Ta kwestia wydajności jest szczególnie ważna w aplikacjach, w których czasochłonna operacja strumienia może blokować wątek interfejsu użytkownika i sprawiać, że aplikacja jest wyświetlana tak, jakby nie działała. Metody asynchroniczne są używane w połączeniu ze słowami kluczowymi async i await w Visual Basic i C#.

Użyj właściwości , CanWrite aby określić, czy bieżące wystąpienie obsługuje pisanie.

Jeśli operacja zostanie anulowana przed zakończeniem, zwrócone zadanie zawiera TaskStatus.Canceled wartość właściwości Status .

Ta metoda przechowuje w zadaniu wszystkie wyjątki inne niż użycie, które mogą zgłaszać synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwróconym zadaniu, ten wyjątek zostanie zgłoszony po oczekiwaniu na zadanie. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. Aby uzyskać informacje o przechowywanych wyjątkach, zobacz wyjątki zgłaszane przez Write(Byte[], Int32, Int32)usługę .

Dotyczy