等待异步TaskEx
什么是TaskEx
? 在http://www.i-programmer.info/programming/c/1514-async-await-and-the-ui-problem.html?start=1或等待TaskEx.Delay或Await async澄清 。 我用
Task DoWork() { return Task.Run(() => { for (int i = 0; i < 30; i++) { Thread.Sleep(1000 * 60 * 30); } }); }
示例使用此
Task DoWork() { return TaskEx.Run(() => { for (int i = 0; i < 10; i++) { Thread.Sleep(500); } } });
我称之为await DoWork();
如果你只使用Task
,则await
返回任何内容并且没有响应。 如果我使用TaskEx
它说它在上下文中不存在。 TaskEx
应该是一个类还是具有某种function的东西? 拳头一个工作这是我的错误。
TaskEx
只是一个额外的类,最初在.NET 4.5发布之前附带了C#5的async / await扩展的CTP ……现在是Async Targeting Pack (又名Microsoft.Bcl.Async
NuGet包 )的一部分。如果您想使用async / await但是目标是.NET 4.0(它没有一些所需的代码)。
如果您使用的是.NET 4.5或更高版本,请使用Task.Run
,它执行相同的操作。 (您将不会使用目标包,因此您将不会使用TaskEx
。)异步目标包无法向现有Task
类添加静态方法,因此TaskEx
不需要TaskEx
。
“TaskEx是一个仅存在于CTP中的类,因为无法在Framework中的现有Task类中添加额外的方法(因为CTP是使用单独的程序集实现的)。
它不会存在于框架的最终RTM版本中。 TaskEx上定义的方法将迁移到Task。“
资料来源: https : //social.msdn.microsoft.com/Forums/en-US/74c5ba79-76cc-4f73-a3fa-35616525ab80/what-is-the-difference-between-task-and-taskex-?forum=async
CTP是.NET编译器平台的社区预览版。