Подтвердить что ты не робот

В чем разница между Task <> и IAsyncOperation <>

Я пишу приложение метро.

Это работает:

    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 < >

В чем разница? Почему существуют два разных типа? Как я могу исправить второй образец?

4b9b3361

Ответ 1

IAsyncOperation - асинхронная операция метро. Вы можете await IAsyncOperation.

Однако вы не можете использовать IAsyncOperation с Task.WhenAll или Task.WhenAny. Чтобы использовать экземпляры IAsyncOperation с этими методами, необходимо вызвать StartAsTask расширения StartAsTask, как таковой:

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