使用Visual Studio 2015时,TaskAwaiter不实现INotifyCompletion

时间:2015-12-10 17:37:31

标签: c# visual-studio-2013 visual-studio-2015 async-await

我有一个旧的ASP.NET Web Form项目,我需要添加一个异步库。我已将其升级到.NET Framework v4.5.1。它可以与Visual Studio 2013完美地运行和编译。

但是,当我用Visual Studio 2015打开它时,它不会编译。每个异步调用都有TaskAwaiter does not implement INotifyCompletion错误。

例如,以下代码:

public async Task AsyncDelay()
{
    await Task.Delay(1);
}

抛出以下错误:

  

CS4027'TaskAwaiter'未实现'INotifyCompletion'

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:14)

我终于找到了这个问题。这个nuget包已经安装

https://www.nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack/1.0.1

那是支持旧版Visual Studio的。我删除了这一切,一切正常。

我在这个上浪费了太多时间......

答案 1 :(得分:2)

我今天遇到了这个问题,我认为这可能对某人有所帮助: 不推荐使用Microsoft.CompilerServices.AsyncTargetingPack,但还有另一个包

https://www.nuget.org/packages/Microsoft.Bcl.Async

我已将其从项目中删除,现在一切正常。