异步方法签名错误.必须返回void,Task或Task <T>

Stu*_*art 3 c# asynchronous

我有一个异步方法.

private static async Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

我叫它用

await InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)

视觉工作室不会建立一个说 async method must return void, Task or Task<T>

它也红色曲线InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);说:

任务不包含ConfigureAwait()的定义

文件顶部的用法是

using System.Threading.Tasks;
using System.Threading;
Run Code Online (Sandbox Code Playgroud)

它所针对的.net框架是4.6.1

Dav*_*idG 6

您几乎肯定在项目中有另一个类,Task它与.Net Framework版本冲突.您可以通过转到Task类型的定义来查看它,并查看它的引导位置.因此,要么将您的版本重命名为不同的版本(可能是最佳选项),要么使用完整的命名空间:

private static async System.Threading.Tasks.Task InsertConnectionStatusIntoAzureDatabaseAsync()
{
    //snip
}
Run Code Online (Sandbox Code Playgroud)