6.2.3 迭代器的执行流程(yield break 语句)
static IEnumerable<int> CountWithTimeLimit(DateTime limit) { for (int i = 1; i <= 100; i++) { if (DateTime.Now >= limit) yield break; yield return i; } } static void Main(string[] args) { DateTime stop = DateTime.Now.AddSeconds(2); foreach (int i in CountWithTimeLimit(stop)) { Console.WriteLine("Received{0}", i); Thread.Sleep(300); } }