【发布时间】:2014-12-07 07:37:21
【问题描述】:
我需要创建一个方法来连接到我的 Azure SQL 数据库并读取一些数据。调用此方法的所有方法都是异步方法,但我认为我无法将 ReadStateProvinceListAsync 设为 async 一个。
在这些情况下,正确的方法是什么?只需忽略编译器的“警告”,即我有一个不使用 await 关键字的 async 方法 或 使 ReadStateProvinceListAsync 方法成为常规同步方法,在这种情况下 @987654326 @ 方法会给我同样的警告。
我想把它做好——按照书本。这就是为什么我想学习正确的方法。
public static async Task<List<StateProvince>> GetStateProvinceListAsync(string countryId)
{
// Check to see if I already have this data cached
if(gotData)
{
// Life is good! Get data from cache.
}
else
{
// Don't have the data cached. Call the DB read method
statesList = await ReadStateProvinceListAsync(countryId)
}
}
private static async Task<List<StateProvince>> ReadStateProvinceListAsync(string countryId)
{
// Call Azure SQL Database to read data. No async code here!
}
【问题讨论】:
-
你想要什么行为?如果您没有
await任何东西,为什么首先要使用方法async?毕竟,这就是创建方法async: 以允许await的原因。如果ReadStateProvinceListAsync()中没有异步实现,则不要将其命名为async(并从名称中删除Async) -
返回等待Task.Run(Func...)
标签: c# .net asp.net-mvc asynchronous async-await