异步方法签名错误。必须返回无效,任务或任务
问题描述:
我有一个异步方法。异步方法签名错误。必须返回无效,任务或任务<T>
private static async Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device)
{
...
}
我把它用
await InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);
Visual Studio将不会建立说的async method must return void, Task or Task<T>
它还红色波浪线行InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);
说:
任务不包含ConfigureAwait的定义()
个
在文件顶部的usings是
using System.Threading.Tasks;
using System.Threading;
.NET框架,它的目标是4.6.1
答
你几乎可以肯定在你的项目中另一个类称为Task
这是相互冲突.Net Framework版本。您可以通过转到Task
类型的定义来查看它,并查看它带您的位置。因此,要么重命名版本的东西不同的(可能是最佳选择),或使用完整的命名空间:
private static async System.Threading.Tasks.Task InsertConnectionStatusIntoAzureDatabaseAsync()
{
//snip
}
答
您可以如用命名空间别名和使用,在你的方法signatire像
using task = System.Threading.Tasks;
private static async task.Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device)
{
...
}
你在你的项目中有一个相冲突的类,也称为“Task”? – DavidG
哦,伙计!就是这样。有一堂课被埋在247,000行文件中,名为Task!如果您将此作为答案,我会将其标记为正确。 – Stuart
247k行?!我希望这是自动生成的,或者你真的需要做一些重构! – DavidG