我想通过a枚举List<int>并调用异步方法.
如果我这样做:
public async Task NotWorking() {
var list = new List<int> {1, 2, 3};
using (var enumerator = list.GetEnumerator()) {
Trace.WriteLine(enumerator.MoveNext());
Trace.WriteLine(enumerator.Current);
await Task.Delay(100);
}
}
Run Code Online (Sandbox Code Playgroud)
结果是:
True
0
Run Code Online (Sandbox Code Playgroud)
但我希望它是:
True
1
Run Code Online (Sandbox Code Playgroud)
如果我删除using或await Task.Delay(100):
public void Working1() {
var list = new List<int> {1, 2, 3};
using (var enumerator = list.GetEnumerator()) {
Trace.WriteLine(enumerator.MoveNext());
Trace.WriteLine(enumerator.Current);
}
}
public async Task Working2() {
var list = new List<int> {1, 2, 3};
var enumerator = list.GetEnumerator(); …Run Code Online (Sandbox Code Playgroud)