DELPHI XE7 新的并行库
DELPHI XE7 的新功能列表里面增加了并行库System.Threading, System.SyncObjs。
为什么要增加新的并行库?
还是为了跨平台。以前要并行编程只能从TThread类继承进行多线程处理,大家知道TThread类是从WINDOWS的线程API封装起来的,它封装的是WINDOWS的多线程的东西,是不能脱离WINDOWS的,当然是不能跨平台的。DELPHI现在走的是原生跨平台的道路,一切DELPHI的基础类库都要从只支持WINDOWS改为支持多平台,这是一个庞大而缓慢的工程,近年,大家都看到了易博龙在这方面的努力,在跨平台方面DELPHI已经做出了许多令人惊喜的改进,DELPHI已经不仅仅同WINDOWS捆绑在一起的开发工具。
连同DELPHI新版本提供的一些新语法:泛型,匿名函数。。。。。。
下面是官方的演示代码:
千记:uses System.Threading, System.SyncObjs;
procedure TForm1.Button1Click(Sender: TObject);
var
tasks: array of ITask;
value: Integer;
begin
value := 0;
tasks := [
TTask.Create(procedure
begin
sleep(1000);
TInterlocked.Add(value, 1000);
end).Start,
TTask.Create(procedure
begin
sleep(1000);
TInterlocked.Add(value, 3000);
end).Start,
TTask.Create(procedure
begin
sleep(1000);
TInterlocked.Add(value, 5000);
end).Start
];
TTask.WaitForAll(tasks);
ShowMessage('All done: ' + value.ToString);
end;
同原来的TTread相比,谁优谁劣?
前面说了新的并行库只是为了跨平台,如果只基于WINDOWS编程,仍然可以使用TTread类,执行效率,留待诸位实测了。
http://www.cnblogs.com/hnxxcxg/p/4109990.html
DELPHI XE7 新的并行库的更多相关文章
- Delphi XE7调用C++动态库出现乱码问题回顾
事情源于有个客户需使用我们C++的中间件动态库来跟设备连接通讯,但是传入以及传出的字符串指针格式都不正确(出现乱码或是被截断),估计是字符编码的问题导致.以下是解决问题的过程: 我们C++中间件动态库 ...
- Delphi XE7中新并行库
Delphi XE7中添加了新的并行库,和.NET的Task和Parellel相似度99%. 详细内容能够看以下的文章: http://www.delphifeeds.com/go/s/119574 ...
- [转载]:Delphi xe7并行编程快速入门
现在多数设备.计算机都有多个CPU单元,即使是手机也是多核的.但要在开发中使用多核的优势,却需要一些技巧,花费时间编写额外的代码.好了,现在可以使用Delphi做并行编程了. 在Delphi.C++ ...
- Delphi xe7并行编程快速入门(三篇)
现在多数设备.计算机都有多个CPU单元,即使是手机也是多核的.但要在开发中使用多核的优势,却需要一些技巧,花费时间编写额外的代码.好了,现在可以使用Delphi做并行编程了. 在Delphi.C++ ...
- Delphi xe7并行编程快速入门(转)
源:http://blog.csdn.net/henreash/article/details/41315183 现在多数设备.计算机都有多个CPU单元,即使是手机也是多核的.但要在开发中使用多核的优 ...
- Delphi XE7并行编程: 并行For循环
从Delphi XE7开始,引入了全新的并行编程库用于简化并行编程,它位于System.Threading单元中. 下面是一个判断素数的简单例子:function IsPrime (N: Intege ...
- 关于delphi XE7中的动态数组和并行编程(第一部分)
本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...
- Delphi并行库System.Threading 之ITask 1
不知什么时候,也许是XE8,也许是XE8之前 .Delphi里面多了个System.Threading的并行库. 虽然己经有非常棒的第三方并行库QWorker,但我还是更喜欢官方的东西. 下面是一段使 ...
- Delphi XE7 GPS控件android下的新变化
Delphi XE7 GPS控件的Android新变化 GPS控件的Accuracy可以起作用了,Accuracy>0时: 1--100:ACCURACY_HIGH 101--500 ...
随机推荐
- php开启虚拟域名功能
1.开启apache的mod_rewrite功能 关闭注释 LoadModule rewrite_module modules/mod_rewrite.so 2.引入http-vhosts.conf文 ...
- 树莓派安装mysql
首先我想启用root用户,所以我先启用root用户: sudo passwd root 这里会提示输入两次密码,然后: sudo passwd --unlock root 这样就可以启动root登录, ...
- JProtector java应用加密工具
JProtector 专业的java项目加密工具 JProtector简介: JProtector 专业的java项目加密工具.目前java开发的项目发布的时候需要将项目发布到用户手中,但由于一 ...
- Java 实现享元(Flyweight)模式
/** * 字母 * @author stone * */ public class Letter { private String name; public Letter(String name) ...
- python下载文件(图片)源码,包含爬网内容(爬url),可保存cookie
#coding=utf-8 ''' Created on 2013-7-17 @author: zinan.zhang ''' import re import time import httplib ...
- 06-OC分类、协议、ARC
目录: 一.分类 二.扩展 三.协议 四.内存管理ARC 回到顶部 一.分类 1 分类就是类的补充和扩展,本质上是类的一部分,把一个类分成若干部分,每个部分就是分类. 2 语法 * 文件中的语法@in ...
- 信号与槽(可以与第三方库混用,首次见到QObject::destroyed的使用)
信号与槽用于对象之间的通信.信号与槽机制是Qt的核心特性和区别于其他框架的特性. Introduction 在GUI程序中,当我们改变一个widget,经常需要其他的widget得到通知.更普遍的是, ...
- c语言,volatile
一.意义: 该关键字的意义就是表示定义的变量值随时都会改变,必须从变量的地址处读取值,所以只有这个变量在使用过程中可能被改变(比如中断程序),就需要用这个关键字说明. )volatile, ...
- C++能在三个地方创造对象,而Delphi只有一个地方
C++能在堆栈.堆.资料区创造对象. 但是Delphi只能在堆上创造对象
- Eclipse中使用版本控制----Git
之前在做软件开发的过程中使用的版本控制软件大多是cvs,svn等等,这些都属于cvcs,及中央版本控制系统,其特点是存在一个中央库,开发者首先从中央库中下载代码,编辑,然后提交.很明显的一个特点就是使 ...