找到相关内容 11
把多核CPU的计算能力都用起来吧,Parallel--让你的循环变成多线程
某些仿真模拟项目中时常会遇到大量的计算的问题,做一个几千次的仿真会耗费数个小时,用户多次的提出要求提高计算的效率,我们也多次修改计算的逻辑,让计算路径变得更短,但是依旧达不到非常明显的效果。 计算时我观察了一下CPU的使用情况曲线,发现CPU占用并不是很多,而且即便是占用CPU很高的计算逻辑,也只是占用了一个CPU的内核,那如何更充分的利用现在主流的多核CPU做运算呢? 多线程!但是---- 如果
http://www.cyqdata.cn/cnblogs/article-detail-40153 
基于微软并行计算的工作流解决方案 (4) Cancellation, MaxDegreeOfParallelism 和CacheMetadata
上面的列子我们实现了基于System.Threading.Tasks下面的组件封装的异步并行活动AsyncParallelActivity。 为了完善这个例子我们还要实现一些并行工作流活动的基本功能  1)     设定MaxDegreeOfParallelism (并行数目控制) 2)     支持Canc
http://www.cyqdata.cn/cnblogs/article-detail-40050 
.Net4.0 Parallel编程(一)Data Parallelism 上
Parallel.For   首先先写一个普通的循环: private void NormalFor(){ for (var i = 0; i < 10000; i++) { for (var j = 0; j < 1000; j++) { for (var k = 0; k < 100; k++)
http://www.cyqdata.cn/cnblogs/article-detail-39724 
.Net 4.0 Parallel 编程(五)Task (中)
在上篇文章中我们看过了如何创建Task,本篇文章就各种类型Task的使用进行说明。   Task Continuations   首先我们来看看延续的Task,所谓的延续的Task就是在第一个Task完成后自动启动下一个Task。我们通过ContinueWith方法来创建延续的Task。我们假设有一个接受xml解析的服务,首先从某个地方接受文件,然后解析入库,最后返回回执是否解析正确:
http://www.cyqdata.cn/cnblogs/article-detail-38965 
基于微软并行计算的工作流解决方案 (3) AsyncParallelActivity
此片文章得到微软并行计算平台的Cristina Manu的热心帮助和大力支持,在此表示感谢。 Cristina Manu is SDET in Microsoft, working at Parallel Computing Platform, the author of paper "WORKFLOW AND PARALLELEXTENSIONS IN .NET FRAMEWORK 4
http://www.cyqdata.cn/cnblogs/article-detail-38410 
基于微软并行计算的工作流解决方案 (1) Parallel Activity
在微软WF4中有一个Parallel活动,它可以模拟并行执行,但可惜的是Parallel活动并不是一个真正意义上的并行计算方案,实际上Parallel利用了一个线程去分时间段执行下面的各个分支。 今天,我们要做的就是基于Parallel活动和微软.net framework 4中的并行任务Task,构造一个实际的并行工作流。并将它扩展为通用的并行工作流解决方案。 我们首先构造一个虚拟的订单处理流程
http://www.cyqdata.cn/cnblogs/article-detail-38170 
基于微软并行计算的工作流解决方案 (2) Tasked based Parallel Activity
上一节我们做了个简单的测试证明了Parallel并不是真正意义上的并行工作流,并且分析了它的缺陷。 在.net framework 4里面有很多关于并行计算的组件,现在我们就要利用System.Threading.Tasks.Task类型来实现并行的分支。 在此我们不对此类型做解释,有问题的朋友可以参考MSDN或者发邮件给我。 我们重写一下PartDBReplicationActivity, pu
http://www.cyqdata.cn/cnblogs/article-detail-38167 
.Net4.0 Parallel编程(三)Data Parallelism 下
在上篇文章中介绍了如何Break、Stop循环,以及如何定义线程局部变量。在本文中介绍如何在外部去取消循环、以及异常的处理。   Cancel   在并行的循环中支持通过传递ParallelOptions参数中的CancellationToken进行取消循环的控制,我们可以CancellationTokenSource实例化之后传递给ParallelOptions对象Cancellation值。下
http://www.cyqdata.cn/cnblogs/article-detail-37765 
改善C#程序的建议10:使用Parallel简化Task的使用
在命名空间System.Threading.Tasks下,有一个静态类Parallel简化了在同步状态下的Task的操作。Parallel主要提供了3个有用的方法:For、ForEach、Invoke。 For方法,主要用于处理针对数组元素的并行操作,如下: static void Main(string[] args) { int[] num
http://www.cyqdata.cn/cnblogs/article-detail-37526 
.Net 4.0 Parallel 编程(九)Task中的数据共享(下)
在上篇Post中我们看过了几种常用的同步类型,本篇文章会介绍下申明性的同步的实现以及对于集合类型数据共享的问题,首先看下申明性同步的实现。 申明性同步 我们可以通过使用Synchronization 特性来标识一个类,从而使一个类型的字段以及方法都实现同步化。在使用Synchronization 时,我们需要将我们的目标同步的类继承于System.ContextBoundObject类型。我们
http://www.cyqdata.cn/cnblogs/article-detail-36538 
.Net 4.0 Parallel 编程(六)Task(下)
在之前的文章中已经介绍过了Task的基本使用了,以及如何取消任务、任务继续等功能。本篇Post主要就Task的异常处理以及Wait功能进行些介绍。 等待时间执行 在TPL中我们可以通过三种方式进行等待,一是通过CancellTaken的WaitHanle进行等待、第二种则是通过传统的Tread.Sleep方法、第三种则通过Thread.SpainWait方法。 CancellToken方式:
http://www.cyqdata.cn/cnblogs/article-detail-35662