如何通过C方法实现文章的通顺表达?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2196个文字,预计阅读时间需要9分钟。
今天来写写C语言。
今天来写写C#中的异步迭代器 - 机制、概念和一些好用的特性
迭代器的概念
迭代器的概念在C#中出现的比较早,很多人可能已经比较熟悉了。
通常迭代器会用在一些特定的场景中。
举个例子:有一个foreach循环:
foreach (var item in Sources) { Console.WriteLine(item); }
这个循环实现了一个简单的功能:把Sources中的每一项在控制台中打印出来。
有时候,Sources可能会是一组完全缓存的数据,例如:List<string>:
IEnumerable<string> Sources(int x) { var list = new List<string>(); for (int i = 0; i < 5; i++) list.Add($"result from Sources, x={x}, result {i}"); return list; }
这里会有一个小问题:在我们打印Sources的第一个的数据之前,要先运行完整运行Sources()方法来准备数据,在实际应用中,这可能会花费大量时间和内存。更有甚者,Sources可能是一个无边界的列表,或者不定长的开放式列表,比方一次只处理一个数据项目的队列,或者本身没有逻辑结束的队列。
本文共计2196个文字,预计阅读时间需要9分钟。
今天来写写C语言。
今天来写写C#中的异步迭代器 - 机制、概念和一些好用的特性
迭代器的概念
迭代器的概念在C#中出现的比较早,很多人可能已经比较熟悉了。
通常迭代器会用在一些特定的场景中。
举个例子:有一个foreach循环:
foreach (var item in Sources) { Console.WriteLine(item); }
这个循环实现了一个简单的功能:把Sources中的每一项在控制台中打印出来。
有时候,Sources可能会是一组完全缓存的数据,例如:List<string>:
IEnumerable<string> Sources(int x) { var list = new List<string>(); for (int i = 0; i < 5; i++) list.Add($"result from Sources, x={x}, result {i}"); return list; }
这里会有一个小问题:在我们打印Sources的第一个的数据之前,要先运行完整运行Sources()方法来准备数据,在实际应用中,这可能会花费大量时间和内存。更有甚者,Sources可能是一个无边界的列表,或者不定长的开放式列表,比方一次只处理一个数据项目的队列,或者本身没有逻辑结束的队列。

