07 2013 档案
摘要:1. 简介前一篇文章提到了如何将输出流转换为输入流,用同样的方法可以实现流的分支,就是将一个输出流的内容同时发送给两或多个输入流。2. 应用场景当需要将数据处理过程中一个中间结果以流的形式传递个两个或者多个处理程序时候,就需要对流进行分支,如果中间结果是以输入流的形式出现,那处理方法就很直观很简单了,但是多数情况下,中间结果是以输出流的形式出现的,这个时候还是输出流转输入流的问题,只是更进一步,可以将一个输出流转换为两个或多个输入流,这样就实现了流的分支。3. 实现代码 1 [TestMethod] 2 public void OutputStream2Mult...
阅读全文
摘要:本文不是关于Async和Await异步编程的入门,是对Async和Await异步编程实现原理的深入研究。本文通过对包含Async和Await关键字的代码的反编译,来揭示Async和Await异步编程的背后实现。
阅读全文
摘要:最近在写一段代码,将本地文件压缩加密后发送到服务器,发送到服务器的类用一个输入流作为参数获取要上传的数据,而压缩类和加密类都是输出流。如何将输出流转换为输入流,最直观的方法是缓存输出流的全部内容到内存或文件中,但是当数据变大的时候,这两种方法显然都不太合适。通过使用管道,可以将一个输出流转换为输入流。管道是一个操作系统功能,由一个循环缓存区构成,用于进程间通信,将一个进程的输出做为另一个进程的输入,Linux命令行脚本大量的用到管道通信,Windows同样也支持管道。.net对管道有封装的类,使用管道,在两个线程间通信,将一个进程的输出传递到另一个进程作为输入,.net中管道类继承自Strea
阅读全文