StringReader.ReadAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
ReadAsync(Char[], Int32, Int32) |
Přečte zadaný maximální počet znaků z aktuálního řetězce asynchronně a zapíše data do vyrovnávací paměti počínaje zadaným indexem. |
ReadAsync(Memory<Char>, CancellationToken) |
Asynchronně přečte všechny znaky ze vstupního řetězce počínaje aktuální pozicí a posune aktuální pozici na konec vstupního řetězce. |
ReadAsync(Char[], Int32, Int32)
- Zdroj:
- StringReader.cs
- Zdroj:
- StringReader.cs
- Zdroj:
- StringReader.cs
Přečte zadaný maximální počet znaků z aktuálního řetězce asynchronně a zapíše data do vyrovnávací paměti počínaje zadaným indexem.
public:
override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <char> ^ buffer, int index, int count);
public override System.Threading.Tasks.Task<int> ReadAsync (char[] buffer, int index, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public override System.Threading.Tasks.Task<int> ReadAsync (char[] buffer, int index, int count);
override this.ReadAsync : char[] * int * int -> System.Threading.Tasks.Task<int>
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.ReadAsync : char[] * int * int -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Char(), index As Integer, count As Integer) As Task(Of Integer)
Parametry
- buffer
- Char[]
Když tato metoda vrátí, obsahuje zadané pole znaků s hodnotami mezi index
a (index
+ count
- 1) nahrazené znaky přečtenými z aktuálního zdroje.
- index
- Int32
Pozice, ve buffer
které se má začít psát.
- count
- Int32
Maximální počet znaků, které se mají přečíst. Pokud je dosaženo konce řetězce před zadaným počtem znaků je zapsán do vyrovnávací paměti, vrátí metoda.
Návraty
Úloha, která představuje asynchronní operaci čtení. Hodnota parametru TResult
obsahuje celkový počet bajtů načtených do vyrovnávací paměti. Výsledná hodnota může být menší než požadovaný počet bajtů, pokud je počet aktuálně dostupných bajtů menší než požadované číslo, nebo může být 0 (nula), pokud bylo dosaženo konce řetězce.
- Atributy
Výjimky
buffer
je null
.
index
nebo count
je negativní.
Součet index
a count
je větší než délka vyrovnávací paměti.
Čtečka řetězců byla odstraněna.
Čtečka je aktuálně používána předchozí operací čtení.
Příklady
Následující příklad ukazuje, jak asynchronně přečíst prvních 23 znaků řetězce.
using System;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
ReadCharacters();
}
static async void ReadCharacters()
{
string stringToRead = "Some characters to read but not all";
char[] charsRead = new char[stringToRead.Length];
using (StringReader reader = new StringReader(stringToRead))
{
await reader.ReadAsync(charsRead, 0, 23);
Console.WriteLine(charsRead);
}
}
}
}
// The example displays the following output:
// Some characters to read
//
Imports System.IO
Module Module1
Sub Main()
ReadCharacters()
End Sub
Async Sub ReadCharacters()
Dim stringToRead = "Some characters to read but not all"
Dim charsRead(stringToRead.Length) As Char
Using reader As StringReader = New StringReader(stringToRead)
Await reader.ReadAsync(charsRead, 0, 23)
Console.WriteLine(charsRead)
End Using
End Sub
End Module
' The example displays the following output:
' Some characters to read
'
Poznámky
Úkol se dokončí po přečtení počtu znaků určených parametrem count
nebo dosažení konce řetězce.
Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Read(Char[], Int32, Int32).
Platí pro
ReadAsync(Memory<Char>, CancellationToken)
- Zdroj:
- StringReader.cs
- Zdroj:
- StringReader.cs
- Zdroj:
- StringReader.cs
Asynchronně přečte všechny znaky ze vstupního řetězce počínaje aktuální pozicí a posune aktuální pozici na konec vstupního řetězce.
public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<char> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<char> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Char), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametry
- cancellationToken
- CancellationToken
Token, který se má monitorovat pro žádosti o zrušení. Výchozí hodnota je None.
Návraty
Úloha, která představuje asynchronní operaci čtení. Hodnota parametru TResult
obsahuje celkový počet znaků načtených do vyrovnávací paměti.
Výjimky
Token zrušení byl zrušen. Tato výjimka je uložena ve vrácené úloze.