我可以将什么任务附加到任务中
本文关键字:任务 什么 我可以 | 更新日期: 2023-09-27 18:13:50
我看到了下面的代码:
[HttpGet]
public async Task OperationAsync()
{
await Task.Delay(2000);
}
…在技巧#7中,我想我应该试试。我修改了这个代码:
[HttpGet]
[Route("api/Deliveries/Count")]
public int GetCountOfDeliveryRecords()
{
return NRBQService.GetNRBQEntity();
}
…:
// [HttpGet] unnecessary when method name begins with "Get"
[Route("api/Deliveries/Count")]
public async Task<int> GetCountOfDeliveryRecords()
{
return await Task.NRBQService.GetNRBQEntity();
}
…但是得到""System.Threading.Tasks。任务'不包含NRBQService'"
那么我该怎么做才能让它编译/工作呢?
您只能等待Task
或Task<T>
(也可以等待其他可等待对象,但不太可能需要使用它们)。Task.Delay
是一个异步方法,返回一个Task
。你可以这样写:
await Task.Delay(2000);
NRBQService.GetNRBQEntity
是一个返回int
的方法,因此不能等待。您需要创建一个像这样返回Task<int>
的异步方法:
public async Task<int> NRBQService.GetNRBQEntityAsync()
{
// ...
}
你可以这样使用:
[Route("api/Deliveries/Count")]
public async Task<int> GetCountOfDeliveryRecords()
{
return await NRBQService.GetNRBQEntity();
}