摘要:Thread-Local Variables首先我们来看下线程局部变量,是的我们也许一直在想我们如何去定义一个线程局部变量呢。先看段顺序执行的代码:view sourceprint?01.[TestMethod()] 02.public void NormalSequenceTest() 03.{ 04.int[] nums = Enumerable.Range(0, 1000000).ToArr...
阅读全文
摘要:前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些使用方法,本篇很短,将会结束Task的基础知识的介绍。 本篇的主要议题如下: 1. 获取Task的状态 2. 执行晚加载的Task(Lazily Task) 3. 常见问题的解决方案 1. 获取Task的状态 在.NET并行编程还有一个已经标准化的操作就是可以获取task的状态,通过Task.Status属性来得到...
阅读全文
摘要:前言:本篇主要讲述等待task执行完成。 本篇的议题如下: 1. 等待Task执行完成 2. Task中的异常处理 首先注意一点:这里提到的"等待"和之前文章提到的"休眠"意思是不一样的: 等待:在等待一个task的时候,这个task还是在运行之中的,"等待"相当于在监听运行的task的执行情况。 休眠:让tasku不运行。 在上篇文章中介绍了如果从Task中获取执行后的结果:在Ta...
阅读全文
摘要:前言:之前的几篇文章断断续续的介绍了Task的一些功能:创建,取消。本篇介绍Task的休眠,本篇的内容比较的少。 本篇的议题如下: 1. Task的休眠。 1. Task的休眠 有时候,我们常常希望一个Task在等待一段时间之后再运行,也就有点类似之前多线程编程中的Sleep。我们可以设置一个Task休眠多长时间,当这个时间过了,Task就自动的唤醒接着运行。 下面就讲讲休眠的方法: ...
阅读全文
摘要:前言:因为Task是.NET 4并行编程最为核心的一个类,也我们在是在并行编程常常打交道的类,所以,对Task对全面的了解很有必要。 上篇文章主要讲述了如何创建一个task,本篇文章主要讲述如何取消一个task。 本篇主的主要议题如下:1. 1. 通过轮询的方式检测Task是否被取消2. 2. 用委托delegate来检测Task是否被取消3. 3. 用Wait Handle还检...
阅读全文
摘要:本篇文章的议题如下: 1.Task基础介绍 2.Task的创建 3.获取Task的执行结果 4. 补充细节 1.Task基础介绍 首先我们还是来看看一段简单的代码: 这里展示的只是一段简单的代码,不能显示出并行编程的特点。但是我们还是从最基本的开始看,慢慢进入深一点的话题。 如果你曾经用过.NET 中的多线程编程,比较一下,就会发现:这段代码虽然在底层还是使用了多线程,但是写法上却简化了很...
阅读全文
摘要:本篇文章中就ExpandoObject的基本使用进行一些demo。我们几乎都知道dynamic特性是.net 4.0中一个主要的新特性,而ExpandoObject正是这样的一个动态的类型。ExpandoObject允许我们在实例化之后在运行时进行成员的增加、删除。下面我们来看下基本的使用:Adding Members1)实例化如果需要延迟绑定的话,我们需要用dynamic来定义ExpandpOb...
阅读全文