一个简单 System.Threading.Tasks.Dataflow.BufferBlock 示例
直接贴代码了:
using System;
using System.Threading.Tasks;
using System.Threading.Tasks.Dataflow; namespace SimpleDataFlowSample
{
class Program
{
static void Main()
{
Task t1 = Task.Run(() => Producer());
Task t2 = Task.Run(async () => await ConsumerAsync());
Task.WaitAll(t1, t2);
} private static BufferBlock<string> s_buffer = new BufferBlock<string>(); public static void Producer()
{
bool exit = false;
while (!exit)
{
string input = Console.ReadLine();
if (string.Compare(input, "exit", ignoreCase: true) == )
{
exit = true;
}
else
{
s_buffer.Post(input);
}
}
} public static async Task ConsumerAsync()
{
while (true)
{
string data = await s_buffer.ReceiveAsync();
Console.WriteLine($"user input: {data}");
}
}
}
}

谢谢浏览!
一个简单 System.Threading.Tasks.Dataflow.BufferBlock 示例的更多相关文章
- 一个简单 System.Threading.Tasks.Dataflow.TransformBlock 示例
		直接贴代码了: using System; using System.Collections.Generic; using System.IO; using System.Threading.Task ... 
- vs2013c#测试using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace ConsoleApplication1_CXY {     class Program     {         stati
		首先安装Unit Test Generator.方法为:工具->扩展和更新->联机->搜索“图标为装有蓝色液体的小试管.Unit Test Generator”, 编写代码,生成一个 ... 
- System.Threading.Tasks.Task引起的IIS应用程序池崩溃
		问题现象 IIS应用程序池崩溃(Crash)的特征如下: 1. 从客户端看,浏览器一直处于连接状态,Web服务器无响应. 2. 从服务器端看(Windows Server 2008 + IIS 7.0 ... 
- 一、并行编程 - 数据并行 System.Threading.Tasks.Parallel 类
		一.并行概念 1.并行编程 在.NET 4中的并行编程是依赖Task Parallel Library(后面简称为TPL) 实现的.在TPL中,最基本的执行单元是task(中文可以理解为"任 ... 
- System.Threading.Tasks.Task 任务引起的IIS应用程序池崩溃
		转载:http://www.cnblogs.com/aaa6818162/p/4421305.html 问题现象 IIS应用程序池崩溃(Crash)的特征如下: 1. 从客户端看,浏览器一直处于连接状 ... 
- System.Threading.Tasks
		前言: 我们之前介绍了两种构建多线程软件的编程技术(使用异步委托或通过System.Threading的成员).这两个可以在任何版本的.NET平台工作. 关于System.Threading 的介绍 ... 
- .Net多线程编程—System.Threading.Tasks.Parallel
		System.Threading.Tasks.Parallel类提供了Parallel.Invoke,Parallel.For,Parallel.ForEach这三个静态方法. 1 Parallel. ... 
- 转载 Net多线程编程—System.Threading.Tasks.Parallel
		.Net多线程编程—System.Threading.Tasks.Parallel System.Threading.Tasks.Parallel类提供了Parallel.Invoke,Paral ... 
- .NET 4.0 System.Threading.Tasks学习笔记
		由于工作上的需要,学习使用了System.Threading.Tasks的使用,特此笔记下来. System.Threading.Tasks的作用: Tasks命名空间下的类试图使用任务的概念来解决线 ... 
随机推荐
- 【原创】Centos 7 升级安装python3.7.4
			1.安装必须的软件 #更新源中包列表 yum -y update #先安装扩展源EPEL 才能安装pip 否则会报错 yum -y install epel-release //解决ssl问题,否则报 ... 
- Ubuntu 18.04通过命令禁用/开启触控板
			Ubuntu下经常遇到无法用快捷键关闭触控板的情况,博主的电脑安装Ubuntu18.04后便出现了该问题. 解决办法: 首先查看输入设备的id,命令行输入: xinput ,插鼠标与不插鼠标时,Tou ... 
- kubernetes CRI 前世今生
			在学习kubernetes的过程中,我们会遇到CRI.CNI.CSI.OCI 等术语,本文试图先通过分析k8s目前默认的一种容器运行时架构,来帮助我们更好理解k8s 运行时背后设计逻辑.进而引出CRI ... 
- 网络流之最大流EK --- poj 1459
			题目链接 本篇博客延续上篇博客(最大流Dinic算法)的内容,此次使用EK算法解决最大流问题. EK算法思想:在图中搜索一条从源点到汇点的扩展路,需要记录这条路径,将这条路径的最大可行流量 liu 增 ... 
- Rust中的测试用例的写法
			有点类似 #[derive(Debug)] pub struct Rectangle { length: u32, width: u32, } impl Rectangle { pub fn can_ ... 
- git的使用(二)
			GITHUB 简介 github可以是全世界最大的同性交友网站,其实就是和百度云一个性质. gitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅 ... 
- Ubuntu下apache2安装配置(内含数字证书配置)
			Ubuntu下apache2安装配置(内含数字证书配置)安装命令:sudo apt-get updatesudo apt-get install apache2 配置1.查看apache2安装目录命令 ... 
- Tkinter 鼠标键盘事件(一)
			一: 鼠标事件 <Button-1> 鼠标左键单击 ... 
- MongoVUE(1.6.9.0)登录提示:Connection was refused的解决办法
			日志文件上描述: UserNotFound Could not find user admin1@diva 2015-10-13T12:12:22.208+0800 I NETWORK [conn1] ... 
- 几个简单js,普通写法和高逼格写法比较
			1. 取数组中的数据,并对空值设置默认值: 常规写法: let arr = [0, 1, null, '', 'abc']; let newArr = []; arr.forEach((item, i ... 
