博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
试了一下.Net Fx 4.0中的Parallel
阅读量:6320 次
发布时间:2019-06-22

本文共 704 字,大约阅读时间需要 2 分钟。

        
static
 
string
[] arr 
=
 Directory.GetFiles(
                                          
@"
C:\Users\Public\Pictures\Sample Pictures
"
                                          
"
*.jpg
"
);
        
//
这里Spin的数值最好自行modify一下,我的是Q6600的机子 
ExpandedBlockStart.gifContractedBlock.gif
        
static
 
void
 SimulateProcessing() 
{ Thread.SpinWait(1000000000); }
 
ExpandedBlockStart.gifContractedBlock.gif        
static
 
string
 TID 
get return " TID = " + Thread.CurrentThread.Mana
gedThreadId.ToString(); }
 }
        
static
 
void
 Main(
string
[] args)
ExpandedBlockStart.gifContractedBlock.gif        
{
            
//foreach (string name in arr)
            
//{
            
//    Program.SimulateProcessing();
            
//    Console.WriteLine(name + TID);
            
//}
            Parallel.ForEach(arr, (
string name) =>
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                Program.SimulateProcessing();
                Console.WriteLine(name 
+ TID);
            }
);
            Console.ReadLine();
        }

采用并行的Foreach效果的确很明显.不仅仅是指派了多个线程,对cpu的利用率也高很多,

见下面两图比较:
原来的foraech:
使用parallel的foreach:
有兴趣的朋友可以对parallel相应的类库做一下逆向工程分析一下it的原理;-)

 

你可能感兴趣的文章
ASP.NET MVC是如何运行的[2]: URL路由
查看>>
30款顶级CSS工具及应用-CSDN.NET
查看>>
自定义安装Apache+php+mysql网站服务器环境
查看>>
JAVA nio 2 定义 Path 类
查看>>
解决AWVS 11出现Web端访问CSS无法加载
查看>>
第十三章:位图(六)
查看>>
Apache PDFBox 存在高危 XXE 漏洞,建议升级至 2.0.15
查看>>
Reactive Programming 一种技术,各自表述
查看>>
Spring系列之Spring框架和SpringAOP集成过程分析(十)
查看>>
终于投产,本月20日特斯拉开始试生产Model 3
查看>>
【解放日报】除了CEO首席执行官,你了解CIO吗?
查看>>
LaTeX中CTeX版本日期格式设置英文
查看>>
关于调整input里面的输入光标大小
查看>>
使用VUE实现textarea固定输入行数与添加下划线样式.
查看>>
前端面试送命题-JS三座大山
查看>>
快讯:Oracle 18c 通用版本 18.3 正式发布
查看>>
REDIS 过期策略(简)
查看>>
英伟达推出机器人专用芯片及平台
查看>>
浅谈java中内置的观察者模式与动态代理的实现
查看>>
以太坊智能合约部署与交互
查看>>