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");

1 つ目は Task<> を返し、2 つ目は IAsyncOperation<> を返します。

違いはなんですか?なぜ2つの異なるタイプがあるのですか?2 番目のサンプルを修正するにはどうすればよいですか?

4

1 に答える 1

28

IAsyncOperationメトロ非同期操作です。あなたはawaitすることができますIAsyncOperation

IAsyncOperationただし、またはと一緒に使用することはできませTask.WhenAllTask.WhenAnyIAsyncOperationこれらのメソッドでインスタンスを使用するには、からAsTask拡張メソッド(以前のStartAsTask)を呼び出す必要がありますSystem.Runtime.WindowsRuntime

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