【发布时间】:2012-09-28 22:06:11
【问题描述】:
我有一个简单的 Metro 风格应用程序,但遇到了(异步和等待)问题。
List<string> fileNames = new List<string>();
...
...
LoadList();
...
...
(Problem) Code that accesses the elements of the fileNames List
...
...
private async void LoadList()
{
// Code that loops through a directory and adds the
// file names to the fileNames List using GetFilesAsync()
}
问题是文件名列表被过早访问 - 在它完全加载项目之前。
这是因为异步方法 - 程序继续执行下一行代码,而异步方法继续处理。
列表完全加载后(异步方法完成后)如何访问?
有没有办法在 Metro 应用程序中不使用异步来完成我想要做的事情?
【问题讨论】:
-
这似乎是使用异步的错误地方。您实际上希望这是一个同步操作。
-
@Dan-o 我正在使用 GetFoldersAsync() 和 GetFilesAsync()。这些是否有同步替代方案?
标签: c# xaml windows-8 microsoft-metro winrt-xaml