JetBrains Rider 2026.1 Help

代码检查:异步迭代器调用未使用 'await foreach'

此检查将报告对异步迭代器的调用,其结果被忽略。 调用异步迭代器方法并不会像许多开发者预期的那样执行它。 要使用其结果,必须进行迭代,通常可以使用 await foreach

示例

using System.Collections.Generic; class C { public void Print() { ProduceAsync(); } public async IAsyncEnumerable<int> ProduceAsync() { yield return 42; } }
using System.Collections.Generic; using System.Threading.Tasks; class C { public async Task Print() { await foreach (var item in ProduceAsync()) item; } public async IAsyncEnumerable<int> ProduceAsync() { yield return 42; } }

快速修复

快速修复可以将调用重写为 await foreach ,并在需要时将包含该调用的方法设为异步。 之后,迭代器才会被真正消费。

2026年 5月 8日