C# 不进行异步调用的异步方法
我需要创建一个方法来连接到我的Azure SQL数据库并读取一些数据。所有调用此方法的方法都是异步方法,但我认为我不能使C# 不进行异步调用的异步方法,c#,.net,asp.net-mvc,asynchronous,async-await,C#,.net,Asp.net Mvc,Asynchronous,Async Await,我需要创建一个方法来连接到我的Azure SQL数据库并读取一些数据。所有调用此方法的方法都是异步方法,但我认为我不能使ReadStateProvinceListAsync成为async方法 在这些情况下,正确的方法是什么?只需忽略编译器的“警告”,即我有一个async方法,该方法不使用wait关键字或使ReadStateProvinceListAsync方法成为常规同步方法,在这种情况下GetStateProvinceListAsync方法将给出相同的警告 我想把它做好--按惯例。这就是为什么
ReadStateProvinceListAsync
成为async
方法
在这些情况下,正确的方法是什么?只需忽略编译器的“警告”,即我有一个async
方法,该方法不使用wait
关键字或使ReadStateProvinceListAsync
方法成为常规同步方法,在这种情况下GetStateProvinceListAsync
方法将给出相同的警告
我想把它做好--按惯例。这就是为什么我想学习正确的方法
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!
}
公共静态异步任务GetStateProvinceListAsync(字符串countryId)
{
//检查是否已缓存此数据
if(gotData)
{
//生活是美好的!从缓存中获取数据。
}
其他的
{
//不缓存数据。请调用DB read方法
statesList=等待ReadStateProvinceListAsync(countryId)
}
}
专用静态异步任务ReadStateProvinceListAsync(字符串countryId)
{
//调用Azure SQL数据库读取数据。此处没有异步代码!
}
用async
关键字标记同步方法绝对没有价值。如果您的方法不进行任何异步调用,请使其同步:
public static 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 = ReadStateProvinceList(countryId)
}
}
private static List<StateProvince> ReadStateProvinceList(string countryId)
{
// Call Azure SQL Database to read data. No async code here!
}
用
async
关键字标记同步方法绝对没有价值。如果您的方法不进行任何异步调用,请使其同步:
public static 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 = ReadStateProvinceList(countryId)
}
}
private static List<StateProvince> ReadStateProvinceList(string countryId)
{
// Call Azure SQL Database to read data. No async code here!
}
用
async
关键字标记同步方法绝对没有价值。如果您的方法不进行任何异步调用,请使其同步:
public static 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 = ReadStateProvinceList(countryId)
}
}
private static List<StateProvince> ReadStateProvinceList(string countryId)
{
// Call Azure SQL Database to read data. No async code here!
}
用
async
关键字标记同步方法绝对没有价值。如果您的方法不进行任何异步调用,请使其同步:
public static 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 = ReadStateProvinceList(countryId)
}
}
private static List<StateProvince> ReadStateProvinceList(string countryId)
{
// Call Azure SQL Database to read data. No async code here!
}
你想要什么样的行为?如果您不等待任何东西,那么为什么首先要使方法
异步
?毕竟,这就是使方法async
:允许wait
的原因。如果ReadStateProvinceListAsync()
中没有异步实现,则不要将其设置为async
(并去掉async
)返回等待任务。运行(Func…)您想要什么行为?如果您不等待任何东西,那么为什么首先要使方法异步
?毕竟,这就是使方法async
:允许wait
的原因。如果ReadStateProvinceListAsync()
中没有异步实现,则不要将其设置为async
(并去掉async
)返回等待任务。运行(Func…)您想要什么行为?如果您不等待任何东西,那么为什么首先要使方法异步
?毕竟,这就是使方法async
:允许wait
的原因。如果ReadStateProvinceListAsync()
中没有异步实现,则不要将其设置为async
(并去掉async
)返回等待任务。运行(Func…)您想要什么行为?如果您不等待任何东西,那么为什么首先要使方法异步
?毕竟,这就是使方法async
:允许wait
的原因。如果ReadStateProvinceListAsync()
中没有异步实现,则不要将其设置为async
(并去掉async
)返回等待任务。运行(Func…)