.net – 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");

一个返回任务<>,第二个返回IAsyncoperation<>

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

IAsyncoperation是一种城域异步操作.您可以等待IAsyncoperation.

但是,您不能将IAsyncoperation与Task.WhenAll或Task.WhenAny一起使用.要使用IAsyncoperation实例与这些方法,您应该调用StartAsTask扩展方法,因此:

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

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...