我有一个方法返回一个对象的列表<>。此方法需要一段时间才能运行。列表<MyObject>不包含GetAwaiter的定义
private List<MyObject> GetBigList()
{
... slow stuff
}
该方法从4或5个来源中调用。所以,我想我会尝试使用异步并等待在这个列表生成时继续移动。我加入这个方法:
public async Task<List<MyObject>> GetBigListAsync()
{
var resultsTask = GetBigList();
var resuls = await resultsTask;
return resuls;
}
但是,在这条线:
var resuls = await resultsTask;
我得到这个错误:
List<MyObject> does not contain a definition for GetAwaiter, and no extension method 'GetAwaiter' accepting a first argument of type List<MyObject> could be found.
我缺少什么?
你的示例代码没有显示出任何使用任务的GetBigList方法也不会标记为async,这意味着不能等待该方法的结果。 –
尝试异步任务<列表> GetBigList() –
Mate
请记住,await不会将异步操作转换为异步操作。等待将当前方法的其余部分注册为*已有的*异步操作的继续。等待是关于*管理异步*,而不是*创建*。如果你希望同步操作是异步的,你将不得不找出一种方法来实现这一点。 –