2017-04-20 11 views
3

私は非同期メソッドを持っています。非同期メソッドシグネチャエラー。 void、タスクまたはタスクを返す必要があります<T>

private static async Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device) 
{ 
    ... 
} 

私は、Visual Studioがasync method must return void, Task or Task<T>

それも赤い波線ラインInsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);が言っていることを言って構築しません

await InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false); 

を使用してそれを呼び出す:タスクが含まれていません

をConfigureAwait()の定義

ファイルの先頭に10

usingsが

using System.Threading.Tasks; 
using System.Threading; 

あり、それが対象とする.NET Frameworkは、あなたがほぼ確実と競合してTaskと呼ばれるプロジェクトに別のクラスを持っている4.6.1

+6

はあなたを行いますようにあなたの方法のsignatireであることを使用することができますあなたのプロジェクトに「タスク」とも呼ばれる矛盾するクラスがありますか? – DavidG

+0

ああ男!それはそれだった。タスクと呼ばれる247,000行のファイルに埋まっているクラスがあります。あなたがこれを答えとして入れるなら、それを正しいものとしてマークします。 – Stuart

+0

247k lines ?!私はそれが自動生成されているか、実際にはリファクタリングを行う必要があることを願っています! – DavidG

答えて

5

です.NET Frameworkのバージョン。これを確認するには、Taskタイプの定義に進み、どこにつながるかを確認します。だから、明確な何か(おそらく最良のオプション)にバージョンの名前を変更したり、完全な名前空間を使用するか:

private static async System.Threading.Tasks.Task InsertConnectionStatusIntoAzureDatabaseAsync() 
{ 
    //snip 
} 
2

あなたにも名前空間のエイリアスを使用して

using task = System.Threading.Tasks; 

    private static async task.Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device) 
    { 
     ... 
    } 
関連する問題