等待异步TaskEx

Vla*_*nov 11 .net c# visual-studio async-await

什么是TaskEx?在http://www.i-programmer.info/programming/c/1514-async-await-and-the-ui-problem.html?start=1等待TaskEx.DelayAwait async澄清.我用

Task DoWork()
{
    return Task.Run(() =>
    {
        for (int i = 0; i < 30; i++)
        {
            Thread.Sleep(1000 * 60 * 30);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

示例使用此

Task DoWork()
{
   return TaskEx.Run(() =>
   {
     for (int i = 0; i < 10; i++)
     {
         Thread.Sleep(500);
     }
   }
 });
Run Code Online (Sandbox Code Playgroud)

我把它称为await DoWork(); 如果你只使用Task,await没有返回,没有回应.如果我使用TaskEx它说它在上下文中不存在.应该TaskEx是一个类或具有某种功能的东西?拳头一个工作它是我的错误.

Jon*_*eet 28

TaskEx这只是一个额外的类,它最初在.NET 4.5发布之前附带了C#5的async/await扩展的CTP ......现在它是Async Targeting Pack(又名Microsoft.Bcl.AsyncNuGet包)的一部分,以防您想要使用异步/等待,但目标是.NET 4.0(它没有一些所需的代码).

如果您使用的是.NET 4.5或更高版本,请使用Task.Run,它执行相同的操作.(您将不会使用定位包,因此您不会使用TaskEx.)异步定位包无法向现有Task类添加静态方法,因此TaskEx根本不需要存在.

  • @VladimirLaktionov:如果你大多是在询问这个问题,那么你的问题就很清楚 - 标题中有`TaskEx`.听起来你在这里有两个不同的问题:1)什么是`TaskEx`,为什么我的编译器找不到它?2)为什么`Task.Run`不像我期望的那样表现.那些应该在不同的职位. (4认同)