【发布时间】:2016-05-07 03:29:06
【问题描述】:
我现在正在学习异步 (UWP) 方法,无法完全理解语法。所有的例子都不仅仅是任务异步调用,并没有真正展示它们是如何启动的。我不明白的主要事情是如何从非异步方法启动任务。每次我尝试调用任务时,它都希望我将该方法转换为异步方法。这反过来又希望我将任何调用该方法的方法变为异步。那你应该怎么开始呢?
我正在尝试的当前用例是从 UWP 本地存储中检索一个包含用户名和 Id 的 JSON 文件,该文件现在在 UWP 中是一个异步调用。我很确定我的方法是正确的,但我在调用它时遇到了问题。目前我在它支持的页面后面的代码中调用该方法,实际方法当前驻留在用户类中。
这是我的代码:
public async Task<List<User>> getUsers()
{
List<User> u = new List<User>();
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.GetFileAsync("LocalUsers.txt");
string Json = await FileIO.ReadTextAsync(file);
List<User> existingUsers = new List<User>();
existingUsers = JsonConvert.DeserializeObject<List<User>>(Json);
return existingUsers;
}
这就是我试图从后面的代码中调用方法的方式
List<User> users = await User.getUsers();
我也尝试过像这样运行任务,但我认为我的语法不正确或其他什么
Task t = new Task(User.getUsers());
我们将不胜感激任何帮助。谢谢。
【问题讨论】:
-
为什么不按照推荐使用消费方法
async? -
这可能是我将来会做的事情,但似乎异步会越来越深入到代码中,我认为这不是正确的做法,但正如其他人所指出的那样这其实是正确的方法。
标签: c# async-await win-universal-app task windows-10-universal