24

我正在写一个地铁应用程序。

这有效:

    HttpClient client = new HttpClient();
    var bytes = await client.GetByteArrayAsync(new Uri("www.microsoft.com"));

这不会:

    var folder = Windows.Storage.ApplicationData.Current.LocalFolder;
    var file = await folder.GetFileAsync("text.txt");

第一个返回 Task<>,第二个返回 IAsyncOperation<>

有什么不同?为什么有两种不同的类型?如何修复第二个样本?

4

1 回答 1

28

IAsyncOperation是一个地铁异步操作。你可以await一个IAsyncOperation.

但是,您不能使用IAsyncOperationwithTask.WhenAllTask.WhenAny。要IAsyncOperation通过这些方法使用实例,您应该从 调用AsTask扩展方法(以前称为StartAsTaskSystem.Runtime.WindowsRuntime,如下所示:

var folder = Windows.Storage.ApplicationData.Current.LocalFolder;
var fileTask = folder.GetFileAsync("text.txt").AsTask();
于 2012-04-06T14:50:16.317 回答