首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在D2007下编译OTL

无法在D2007下编译OTL
EN

Stack Overflow用户
提问于 2015-10-08 11:43:48
回答 1查看 249关注 0票数 1

我下载了OTL http://www.omnithreadlibrary.com/

并编译D2007 grouproj,安装软件包,没有问题。

然后,我创建一个使用OtlParallel单元的简单控制台应用程序,当然,我将OtlParallel和其他一些pas文件添加到项目中。

但它抱怨说没有找到Generics.Collections。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-15 06:47:40

文档说:

高级抽象在OtlParallel单元中实现.它们都是通过工厂类并行创建的。高级代码集中使用匿名方法和泛型,这使得Delphi 2009成为支持的最低版本。

这些泛型和匿名方法使得这个单元与Delphi 2007完全不兼容。

如果您希望使用类似于Delphi2007和OTL的Parallel.For这样的构造,那么您必须自己支持端口OtlParallel。如果没有匿名方法,这是非常困难的,并实现相同的流畅风格的代码。您必须使用过程类型而不是匿名方法。而且您必须手动实现闭包。

所以不要用

代码语言:javascript
复制
TProc = reference to procedure;

你会用

代码语言:javascript
复制
TMethod = procedure of object;

为了实现这一点,您可以使用无参数的方法创建一个类或记录。您需要将所需的任何状态作为类型的成员添加,并填充这些成员。这实质上是带有变量捕获的闭包的手动实现。你需要处理一辈子的事。确保实例存在于并行循环之上。

祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33014800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档