网站用的横幅广告怎么做,深圳建筑工地招工,开发必备软件,社区做图网站有哪些内容异步流 Asynchronous Streams例子 这是一个很简单的控制台程序。它有一个NumberFactory#xff0c;它可以根据传递的参数来产生一串数字#xff08;IEnumerableint#xff09;。然后在这个程序中把每个数字都打印出来#xff0c;同时在前边显示出当前的线程ID。 这… 异步流 Asynchronous Streams例子 这是一个很简单的控制台程序。它有一个NumberFactory它可以根据传递的参数来产生一串数字IEnumerableint。然后在这个程序中把每个数字都打印出来同时在前边显示出当前的线程ID。 这里面的NumberFactory也是非常的简单 这里我做了延迟模拟读取外部资源的效果。 运行程序文章考不到挨个输出的停顿效果 可以看到所在线程的ID都是1。因为其工作原理就是这样的程序会阻塞线程以便让NumberFactory来做它的工作。所以说这样不是很理想最理想的办法是使用C#的异步编程模型但是在C# 8之前这是做不到的。但是从C# 8开始我们就可以这样做了。 Asynchronous Streams 异步流 首先修改NumberFactory在Task.Delay(1000)前边加上await关键字来代替.Wait()方法然后再修改返回类型为IAsyncEnumberableint并在前面添加async关键字: 回到Main方法需要做出两个修改 首先就是在foreach循环前面加上await关键字这看起来比较奇怪但这就是我们遍历异步流的方式。注意是在foreach前边加await而不是在factory.GenerateNumbers(5)前边加await。 然后还需要改变Main方法的返回类型为Task并加上async关键字。 最后运行程序看看效果 可以看到线程的ID有时候会发生变化这就是我们想要的效果。在这里流是异步的当它await任务的时候该线程是可以去做其它工作的。而当程序继续执行的时候它确实可能结束于其它的线程。 更详细教程请点击原文链接。