请原谅我的无知,但我有了解MSDN摘录读取文件内容异步读取文本文件异步
https://msdn.microsoft.com/en-us/library/jj155757.aspx
string text = await ReadTextAsync(filePath);
问题...
private async Task<string> ReadTextAsync(string filePath)
{
using (FileStream sourceStream = new FileStream(filePath,
FileMode.Open, FileAccess.Read, FileShare.Read,
bufferSize: 4096, useAsync: true))
{
StringBuilder sb = new StringBuilder();
byte[] buffer = new byte[0x1000];
int numRead;
while ((numRead = await sourceStream.ReadAsync(buffer, 0, buffer.Length)) != 0)
{
string text = Encoding.Unicode.GetString(buffer, 0, numRead);
sb.Append(text);
}
return sb.ToString();
}
}
如何读取异步?它似乎要等到ReadTextAsync
已完成才能返回内容。如果在该方法中插入了Thread.Sleep
,那么它将等待完成,并且在调用该方法之后将不会运行其他代码。
它是异步的,因为'await sourceStream.ReadAsync'。请注意,异步并不意味着您不会等待,这意味着如果您选择等待,则在等待时不会占用线程。 – juharr
如何实际读取文件内容的全部内容?您无法调用该方法并继续执行程序 – tic
*此方法“等待”响应,但消耗系统可以在此任务完成时自由地执行其他操作。 ''你不能调用这个方法并继续执行程序'' - 你当然可以,而这正是系统的功能。例如,当UI在该方法执行时继续呈现和响应。这是应用程序继续做的事情。 – David