使用 IEnumerator 对项目进行异步操作

M. *_*lil 1 c# ienumerator

我正在使用一些 API 返回一个IEnumerator子实例我想对返回的每个对象执行一些功能

我通常使用

while(Enumerator.MoveNext())
{
    DoSomething(Enumerator.current);
}
Run Code Online (Sandbox Code Playgroud)

我没有IEnumerable对象,我想DoSomething异步处理每个对象

我不想IEnumerableIEnumerator性能问题中获益。

我还能做什么来循环异步 IEnumerator

Age*_*ire 5

C# 8.0 具有异步可枚举功能

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)