小心使用 List 的 ForEach 方法
💡
原文中文,约1500字,阅读约需4分钟。
📝
内容提要
List 的 ForEach 方法的参数是一个同步的委托方法,如果里面是一个异步方法,则不会等待任务完成,可能会出现 BUG,正确的做法是使用 foreach 来代替,如果要等待异步方法完成,则需要使用 Func<Task> 或 Func<T, Task> 代替 Action 或 Action<T>。
🎯
关键要点
- List 的 ForEach 方法的参数是一个同步的委托方法。
- 在 ForEach 中使用异步方法时,不会等待任务完成,可能导致 BUG。
- 正确的做法是使用 foreach 来代替 ForEach。
- 如果需要等待异步方法完成,应使用 Func<Task> 或 Func<T, Task> 代替 Action 或 Action<T>。
- 示例代码展示了 ForEach 的输出与预期不符的情况。
- ForEach 方法的签名显示其参数为 Action<T>,是同步的。
- 使用 foreach 遍历可以确保异步任务按顺序完成。
🏷️
标签
➡️