06 2022 档案

摘要:IEnumerable 和 IEnumerator IEnumerator接口定义了以向前方式遍历集合的基本底层协议。 声明如下: public interface IEnumerator { bool MoveNext(); object Current { get; } void Reset() 阅读全文
posted @ 2022-06-29 20:57 一纸年华 阅读(782) 评论(0) 推荐(0) 编辑
摘要:C#的CLR(即 common language runtime,公共语言运行库)包含两种任务组合器:Task.WhenAny和Task.WhenAll。 我们先定义如下方法: async Task<int> Delay1() { await Task.Delay(1000); return 1; 阅读全文
posted @ 2022-06-28 21:56 一纸年华 阅读(2559) 评论(0) 推荐(3) 编辑
摘要:在C#8之前,可以使用yield return实现迭代器,也可以用await书写异步函数。但无法两者结合,实现一个可以等待的迭代器。C#8引入了异步流解决了这个问题。 异步流基于以下两个接口。 public interface IAsyncEnumerable<out T> { IAsyncEnum 阅读全文
posted @ 2022-06-28 21:55 一纸年华 阅读(385) 评论(0) 推荐(0) 编辑
摘要:要编写异步函数,可将返回类型void改为Task。这样方法本身就能进行异步调用,并且是可等待的。 async Task PrintAnswerToLife() { await Task.Delay (5000); int answer = 21 * 2; Console.WriteLine (ans 阅读全文
posted @ 2022-06-26 08:48 一纸年华 阅读(621) 评论(0) 推荐(0) 编辑
摘要:await关键字可以简便地附加延续。 static void Main(string[] args) { DisplayPrimesCount(); } static async void DisplayPrimesCount() { int result = await GetPrimesCoun 阅读全文
posted @ 2022-06-25 22:56 一纸年华 阅读(1603) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示