C# 4.0 并行计算部分(附件有图)
来源:互联网 发布:衣服打版软件 编辑:程序博客网 时间:2024/05/18 01:46
C# 4.0 并行计算部分
沿用微软的写法,System.Threading.Tasks.::.Parallel类,提供对并行循环和区域的支持。我们会用到的方法有For,ForEach,Invoke。
一、简单使用
首先我们初始化一个List用于循环,这里我们循环10次。(后面的代码都会按这个标准进行循环)
Program .Data = new List <int >();
for (int i = 0; i < 10; i++)
{
Data.Add(i);
}
下面我们定义4个方法,分别为for,foreach,并行For,并行ForEach。并测试他们的运行时长。
/// <summary>
/// 是否显示执行过程
/// </summary>
public bool ShowProcessExecution = false ;
/// <summary>
/// 这是普通循环for
/// </summary>
private void Demo1()
{
List <int > data = Program.Data;
DateTime dt1 = DateTime.Now;
for (int i = 0; i < data.Count; i++)
{
Thread.Sleep(500);
if (ShowProcessExecution)
Console.WriteLine(data[i]);
}
DateTime dt2 = DateTime .Now;
Console.WriteLine("普通循环For运行时长:{0}毫秒。" , (dt2 - dt1).TotalMilliseconds);
}
/// <summary>
/// 这是普通循环foreach
/// </summary>
private void Demo2()
{
List <int > data = Program.Data;
DateTime dt1 = DateTime.Now;
foreach (var i in data)
{
Thread.Sleep(500);
if (ShowProcessExecution)
Console.WriteLine(i);
}
DateTime dt2 = DateTime.Now;
Console.WriteLine("普通循环For运行时长:{0}毫秒。" , (dt2 - dt1).TotalMilliseconds);
}
/// <summary>
/// 这是并行计算For
/// </summary>
private void Demo3()
{
List <int > data = Program.Data;
DateTime dt1 = DateTime .Now;
Parallel.For(0, data.Count, (i) =>
{
Thread.Sleep(500);
if (ShowProcessExecution)
Console.WriteLine(data[i]);
});
DateTime dt2 = DateTime.Now;
Console.WriteLine("并行运算For运行时长:{0}毫秒。" , (dt2 - dt1).TotalMilliseconds);
}
/// <summary>
/// 这是并行计算ForEach
/// </summary>
private void Demo4()
{
List <int > data = Program.Data;
DateTime dt1 = DateTime.Now;
Parallel.ForEach(data, (i) =>
{
Thread.Sleep(500);
if (ShowProcessExecution)
Console.WriteLine(i);
});
DateTime dt2 = DateTime.Now;
Console.WriteLine("并行运算ForEach运行时长:{0}毫秒。" , (dt2 - dt1).TotalMilliseconds);
}
- C# 4.0 并行计算部分(附件有图)
- C# 4.0 并行计算部分
- C# 4.0 并行计算部分
- C# 4.0 并行计算部分
- C# 4.0 并行计算部分
- C# 4.0 并行计算部分
- julia 与并行计算(部分有参考和转载)
- C# 4.0并行计算
- C#4.0 并行计算小试牛刀
- 并行计算部分总结
- C# 并行计算
- C#并行计算测试
- 分布式、并行计算语言Erlang 学习笔记(第一部分)
- 分布式、并行计算语言Erlang 学习笔记(第二部分)
- 分布式、并行计算语言Erlang 学习笔记(第三部分)
- C# Parallel 并行计算测试
- 并行计算(PPL)
- 八仙数(并行计算)
- 征服 Mongodb 之 常用命令、基本数据类型
- 九度OJ 题目1121:首字母大写
- Grails中利用枚举(enum)来实现Status、Type功能
- js 分浏览器设置style属性
- Java中字符串探索----String ,StringBuffer ,StringBuilder及字符串缓存池
- C# 4.0 并行计算部分(附件有图)
- 关于树(平衡树)的旋转--理解方便记忆
- 前台JSP页面以表格展示数据的过程中出现了重复数据
- 查看mongo数据库的慢查询
- iPKG包制作(ipkg-build)
- private(私有)方法单元测试无法覆盖?那就用反射调用来测试private(私有)方法
- #云端对话——云的那些事#《云计算:大数据时代的系统工程》作者在中关村图书大厦和你面对面
- 用shell命令分割大日志文件
- 通过Hibernate配置获取数据库表的具体信息