我下载了 OTL http://www.omnithreadlibrary.com/
并编译D2007 grouproj,安装包,没有问题。
然后我创建了一个使用 OtlParallel 单元的简单控制台应用程序,当然,我将 OtlParallel 和其他一些 pas 文件添加到项目中。
但它抱怨找不到 Generics.Collections。
我下载了 OTL http://www.omnithreadlibrary.com/
并编译D2007 grouproj,安装包,没有问题。
然后我创建了一个使用 OtlParallel 单元的简单控制台应用程序,当然,我将 OtlParallel 和其他一些 pas 文件添加到项目中。
但它抱怨找不到 Generics.Collections。
文档说:
高级抽象在 OtlParallel 单元中实现。它们都是通过工厂类 Parallel 创建的。高级代码大量使用匿名方法和泛型,这使得 Delphi 2009 成为支持的最低版本。
这种泛型和匿名方法的使用使得这个单元与 Delphi 2007 完全不兼容。
如果您希望使用像Parallel.For
Delphi 2007 和 OTL 这样的结构,那么您必须OtlParallel
自己进行反向移植。如果没有匿名方法,这很难做到并实现同样流畅的代码风格。您将不得不使用过程类型而不是匿名方法。而且您必须手动实现闭包。
所以而不是使用
TProc = reference to procedure;
你会用
TMethod = procedure of object;
然后为了实现这一点,您使用无参数方法创建一个类或记录。您需要添加所需的任何状态作为该类型的成员,并填充这些成员。这实质上是手动实现带有变量捕获的闭包。你需要处理一生。确保实例比并行循环更长。
祝你好运!