我正在使用一些 API 返回一个IEnumerator子实例我想对返回的每个对象执行一些功能
我通常使用
while(Enumerator.MoveNext())
{
DoSomething(Enumerator.current);
}
Run Code Online (Sandbox Code Playgroud)
我没有IEnumerable对象,我想DoSomething异步处理每个对象
我不想IEnumerable从IEnumerator性能问题中获益。
我还能做什么来循环异步 IEnumerator
static async Task Main(string[] args)
{
await foreach (var dataPoint in FetchIOTData())
{
Console.WriteLine(dataPoint);
}
Console.ReadLine();
}
static async IAsyncEnumerable<int> FetchIOTData()
{
for (int i = 1; i <= 10; i++)
{
await Task.Delay(1000);//Simulate waiting for data to come through.
yield return i;
}
}
Run Code Online (Sandbox Code Playgroud)