我可以将什么任务附加到任务中

本文关键字:任务 什么 我可以 | 更新日期: 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'"

那么我该怎么做才能让它编译/工作呢?

我可以将什么任务附加到任务中

您只能等待TaskTask<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();
}