我需要創建一個方法,將連接到我的Azure SQL數據庫並讀取一些數據。所有調用此方法的方法都是異步方法,但我認爲我不能將ReadStateProvinceListAsync
設置爲async
。異步方法,不會進行異步調用
這些情況下正確的方法是什麼?不理會從我有一個async
方法不使用await
關鍵字編譯器的「警告」 或使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!
}
你想要什麼行爲?如果你不「等待」任何東西,爲什麼你首先要做的方法是「異步」?畢竟,這就是製作一個方法'async'的原因:允許'await'。如果'ReadStateProvinceListAsync()'中沒有異步實現,那麼不要使它成爲'async'(並且取掉名字'Async') – 2014-12-06 23:32:39
return await Task.Run(Func <> ...) – 2014-12-06 23:33:31