StreamReader.ReadAsync Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| ReadAsync(Memory<Char>, CancellationToken) |
Geçerli akıştan gelen karakterleri zaman uyumsuz olarak bir bellek bloğuna okur. |
| ReadAsync(Char[], Int32, Int32) |
Geçerli akıştan belirtilen en fazla karakter sayısını zaman uyumsuz olarak okur ve verileri belirtilen dizinden başlayarak bir arabelleğe yazar. |
ReadAsync(Memory<Char>, CancellationToken)
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
Geçerli akıştan gelen karakterleri zaman uyumsuz olarak bir bellek bloğuna okur.
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)
Parametreler
Bu yöntem döndürdüğünde, geçerli kaynaktan okunan karakterlerle değiştirilen belirtilen bellek bloğunu içerir.
- cancellationToken
- CancellationToken
İptal isteklerini izlemek için belirteç. None varsayılan değerdir.
Döndürülenler
Zaman uyumsuz okuma işlemini temsil eden bir değer görevi. Değer görevinin tür parametresinin değeri, okunan karakter sayısını veya akışın sonunda veri okunmadıysa 0 değerini içerir. Verilerin akış içinde kullanılabilir olup olmamasına bağlı olarak, sayı uzunluk değerinden küçük veya buna eşit buffer olacaktır.
Özel durumlar
İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.
Şunlara uygulanır
ReadAsync(Char[], Int32, Int32)
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
- Kaynak:
- StreamReader.cs
Geçerli akıştan belirtilen en fazla karakter sayısını zaman uyumsuz olarak okur ve verileri belirtilen dizinden başlayarak bir arabelleğe yazar.
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)
Parametreler
- buffer
- Char[]
Bu yöntem döndürdüğünde, ve (indexindex + - 1) arasındaki count değerlerin geçerli kaynaktan okunan karakterlerle değiştirdiği belirtilen karakter dizisini içerir.
- index
- Int32
Yazmaya başlama konumu buffer .
- count
- Int32
Okunacak karakter sayısı üst sınırı. Belirtilen sayıda karakter arabelleğe yazılmadan önce akışın sonuna ulaşılırsa geçerli yöntem döndürür.
Döndürülenler
Zaman uyumsuz okuma işlemini temsil eden görev. parametresinin TResult değeri arabelleğe okunan toplam karakter sayısını içerir. Sonuç değeri, kullanılabilir durumdaki karakter sayısı istenen sayıdan küçükse istenen karakter sayısından az veya akışın sonuna ulaşıldıysa 0 (sıfır) olabilir.
- Öznitelikler
Özel durumlar
buffer, null'e eşittir.
index veya count negatiftir.
ve'nin indexcount toplamı arabellek uzunluğundan daha büyüktür.
Akış atıldı.
Okuyucu şu anda önceki bir okuma işlemi tarafından kullanılıyor.
Örnekler
Aşağıdaki örnekte, yöntemini kullanarak dosyadaki tüm karakterlerin nasıl okunduğu gösterilmektedir ReadAsync(Char[], Int32, Int32) . Sınıfın bir örneğine StringBuilder karakter eklemeden önce her karakterin harf, rakam veya boşluk olup olmadığını denetler.
using System;
using System.Windows;
using System.IO;
using System.Text;
namespace WpfApplication
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
string filename = @"C:\Example\existingfile.txt";
char[] result;
StringBuilder builder = new StringBuilder();
using (StreamReader reader = File.OpenText(filename))
{
result = new char[reader.BaseStream.Length];
await reader.ReadAsync(result, 0, (int)reader.BaseStream.Length);
}
foreach (char c in result)
{
if (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c))
{
builder.Append(c);
}
}
FileOutput.Text = builder.ToString();
}
}
}
Imports System.Text
Imports System.IO
Class MainWindow
Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
Dim filename As String = "C:\Example\existingfile.txt"
Dim result() As Char
Dim builder As StringBuilder = New StringBuilder()
Using reader As StreamReader = File.OpenText(filename)
ReDim result(reader.BaseStream.Length)
Await reader.ReadAsync(result, 0, reader.BaseStream.Length)
End Using
For Each c As Char In result
If (Char.IsLetterOrDigit(c) Or Char.IsWhiteSpace(c)) Then
builder.Append(c)
End If
Next
FileOutput.Text = builder.ToString()
End Sub
End Class
Açıklamalar
Parametre tarafından belirtilen karakter sayısı okunduktan veya akışın count sonuna ulaşıldıktan sonra görev tamamlanır.
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Read(Char[], Int32, Int32)oluşan özel durumlara bakın.