Ski*_*pm3 3 c# loops asynchronous async-await
我有这样的代码
public async Task<List<User>> GetUsersByField(string fieldName, string fieldValue)
{
var filter = Builders<User>.Filter.Eq(fieldName, fieldValue);
var result = await _usersCollection.Find(filter).ToListAsync();
return result.ToList();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用迭代它时
foreach(var w in GetUsersByField("Name", John"))
Run Code Online (Sandbox Code Playgroud)
它显示错误
"不包含'GetEnumerator'的公共定义"
我试过用
public async IEnumerable<Task<List<User>>> GetUsersByField(string fieldName, string fieldValue)
Run Code Online (Sandbox Code Playgroud)
但仍显示错误.有什么建议?
用这样的async方法
public async Task<List<User>> GetUsersByField(string fieldName, string fieldValue
Run Code Online (Sandbox Code Playgroud)
它建议await它
public async Task MyCallingMethod()
{
var users = await GetUsersByField(...);
foreach(var w in users )
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public async Task MyCallingMethod()
{
foreach(var user in await GetUsersByField(...))
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
通过呼叫还有其他方式Result,但不要让那个兔子洞
简而言之,让Async Await Pattern通过代码像病毒一样传播
补充阅读
Stephen Cleary:Async和Await
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |