私は独特の問題に遭遇しました。基本的に、サーバーからデータを読み取る既存の非同期クラスのラッパーを作成しています。ライブラリにある元のメソッドは次のようなものです
public async Task<IEnumerable<PersonData>> GetPersonData();
これで見事に動作します
var people = await GetPersonData();
ただし、ラップしようとすると問題が発生します。簡単にするために、テストしようとした最初のバージョンを含めましたが、機能しませんでした。さらに、実際のラッピング方法では、実際の理由を示していない独特の「待機できません」エラーが発生します。できません。これはコンパイル エラーなので、何か間違ったことをしているに違いありません。
public async Task<IEnumerable<PersonData>> GetWrappedPersonData()
{
return await clientClass.GetPersonData();
}
そして、メインクラスでこれを呼び出すと
var wrappedPeople = await wrapper.GetWrappedPersonData();
「'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<PersonData>>' を待機できません」という「待機」のエラーが表示されます。
GetWrappedPersonData にカーソルを合わせると、メソッドが待機可能であることが示されます。なぜここでこれを待つことができないのか、私は混乱しています。