我有長時間運行的I/O綁定完美的異步/等待代碼。我做倉庫模式,想不通,因爲我得到一個對象不包含在此代碼awaiter方法如何在存儲庫模式中進行異步等待?
public class HomeController : Controller
{
private ImainRepository _helper = null;
public HomeController()
{
this._helper = new MainRepository();
}
public async Task<string> Aboutt()
{
// Here I get the error
object main = await _helper.Top_Five() ?? null;
if(main != null)
{
return main.ToString();
}
else
{
return null;
}
}
}
,我實施精品工程的方法怎麼辦控制器等待如下所示。我從數據庫中獲取數據並以字符串格式返回。我想要的是找到一種方法來製作 object main = await _helper.Top_Five()?空值;等待,否則我會與同步代碼混合異步。任何建議將是偉大的...
public async Task<string> Top_Five()
{
try
{
using (NpgsqlConnection conn = new NpgsqlConnection("Config"))
{
conn.Open();
string Results = null;
NpgsqlCommand cmd = new NpgsqlCommand("select * from streams limit 15)t", conn);
using (var reader = await cmd.ExecuteReaderAsync())
{
while (reader.Read())
{
Results = reader.GetString(0);
}
return Results;
}
}
}
catch(Exception e)
{
// Log it here
return null;
}
}
什麼版本的.NET框架你有你的項目配置使用?肯定它必須是> = 4.5 –
是的,它實際上是Asp.Net核心RC2 –
我不能重現錯誤。你能提供一個[mcve]嗎? – svick