0
我瞭解異步方法,我不明白爲什麼ASYN任務方法的返回異步方法返回System.Threading.Tasks.Task
System.Threading.Tasks.Task'1 [系統...
下面是代碼:
public async Task<List<T>> GetAll(){
try{
var conn = new SQLiteAsyncConnection(System.IO.Path.Combine(path,"database.db"));
var value = await conn.Table<T>().ToListAsync();
return value;
}
catch (Exception e)
{
Log.Info(TAG, "Error when selecting the registry. " + e.Message);
}
return null;
}
在這種情況下,返回值,但作爲System.Threading.Tasks.Task'1 [系統......而不是作爲查詢的回報。
這是不是很清楚你的意思 - 是的,它會返回一個任務...這就是異步方法的工作原理。他們回報你說:「我已經爲你開始了工作 - 結果將在這項任務完成時完成。」 –
對不起,讓我更清楚。我相信當我運行'conn.Table()。 ToListAsync()'返回值必須是(select * from datatable),例如2,但它返回System.Threading.Tasks.Task'1 ..誰調用了'GetAll()'方法。 –
不,我恐怕沒有什麼更清晰的......它仍然聽起來像你應該回顧一下調用異步API的含義。 (如果方法阻塞直到它可以直接返回結果,它不能是異步的,按照定義...) –