【发布时间】:2013-09-13 16:33:18
【问题描述】:
我正在尝试异步且安全地读取文件(寻求的最低权限级别)。我正在使用 .NET 3.5,找不到一个很好的例子(都使用 async 和 await)。
public string GetLines()
{
var encoding = new UnicodeEncoding();
byte[] allText;
using (FileStream stream =File.Open(_path, FileMode.Open))
{
allText = new byte[stream.Length];
//something like this, but does not compile in .net 3.5
stream.ReadAsync(allText, 0, (int) allText.Length);
}
return encoding.GetString(allText);
}
问题是,我如何在 .net 3.5 中异步执行此操作,等到操作完成并将所有行发回给调用者?
调用者可以等到操作完成,但读取必须在后台线程中进行。
调用者是一个 UI 线程,我使用的是 .NET 3.5
【问题讨论】:
-
您想异步执行,但要等到操作完成?
-
您必须异步调用 GetLines。您无需在此处进行更改。
-
是的,考虑到 UI 是调用者。