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的含义。 (如果方法阻塞直到它可以直接返回结果,它不能是异步的,按照定义...) –