OTL无法在D2007下编译

时间:2015-10-08 11:43:48

标签: delphi omnithreadlibrary

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

编译D2007 grouproj,安装包,没问题。

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

但它抱怨找不到Generics.Collections。

1 个答案:

答案 0 :(得分:2)

documentation说:

  

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

我们使用泛型和匿名方法使得该单元与Delphi 2007完全不兼容。

如果您希望在Delphi 2007和OTL中使用$_GET之类的构造,那么您必须自己后端Parallel.For。如果没有匿名方法,这很难做到并实现相同的流畅代码风格。您必须使用过程类型而不是匿名方法。而且你必须手动实现闭包。

所以不要使用

OtlParallel

你会用

TProc = reference to procedure;

然后要实现此功能,您可以使用无参数方法创建类或记录。您需要添加所需的任何状态作为该类型的成员,并填充这些成员。这本质上是一个带有变量捕获的闭包的手动实现。你需要处理一生。确保实例比并行循环更长。

祝你好运!