我正在使用一些API,该API返回我一个IEnumerator
子实例,我想对返回的每个对象执行一些功能
我通常使用
while(Enumerator.MoveNext())
{
DoSomething(Enumerator.current);
}
我没有
IEnumerable
对象我想与每个对象异步
DoSomething
对于性能问题,我不想从
IEnumerable
获取IEnumerator
。我还能做些什么来使
IEnumerator
异步循环 最佳答案
C# 8.0 has Async Enumerable feature。
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;
}
}
关于c# - 使用IEnumerator对项目执行异步操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57207127/