我無法弄清楚,爲什麼下面的代碼不斷拋出「不能等待」的錯誤...不能等待任務<MyObject>
我有一種感覺,我可能會越來越棒錯誤的結束與關於實施一個異步API操作。任何人都可以指導我在哪裏出錯?
API動作:
[HttpGet]
public async Task<IHttpActionResult> Get(int id)
{
var getAnimal = animalManager.Get(id);
var animal = await getAnimal;
return Ok(animal);
}
管理器/服務方法:
public async Task<Animal> Get(int id)
{
return await Task.Run(() => { return animalRepository.Get(id); });
}
庫方法(同步):
public Animal Get(int id)
{
var animal = dbSet.Find(id);
if (animal == null)
{
throw new ArgumentNullException("Animal");
}
return animal;
}
只是一個代碼樣式註釋:服務方法(或任何'async'方法通常應該有一個'Async'後綴,所以它應該被命名爲'GetAsync'。 –
在哪個'await'你會得到這個錯誤。首先看起來一切似乎都很好(除非'ArgumentNullException'似乎是錯誤的錯誤,如果你沒有找到結果) –
它是編譯還是運行時錯誤? 你是否嘗試過使用異步版本的DbSet,FindAsync() ? – pwas