Macos 将多线程Delphi应用程序移植到Mac:我的选择是什么?

Macos 将多线程Delphi应用程序移植到Mac:我的选择是什么?,macos,delphi,delphi-xe2,lazarus,omnithreadlibrary,Macos,Delphi,Delphi Xe2,Lazarus,Omnithreadlibrary,我需要将应用程序(以XE2编写)移植到Mac 我的应用程序分为一个简单的UI可执行文件(单线程)和一个不可见的引擎(这严重依赖OmniThreadLibrary 3.02和) 两个EXE通过Cromis.IPC进行通信 也就是说,我主要对这3个组件(OmniThreadLibrary、Cromis IPC和DirectoryWatch)存在问题 我现在关注的是引擎,它拥有大部分代码 我的问题是:Mac是否有类似于OmniThreadLibrary、Cromis DirectoryWatch和Cr

我需要将应用程序(以XE2编写)移植到Mac

我的应用程序分为一个简单的
UI可执行文件
(单线程)和一个不可见的
引擎
(这严重依赖OmniThreadLibrary 3.02和

两个EXE通过Cromis.IPC进行通信

也就是说,我主要对这3个组件(OmniThreadLibrary、Cromis IPC和DirectoryWatch)存在问题

我现在关注的是引擎,它拥有大部分代码

我的问题是:Mac是否有类似于OmniThreadLibrary、Cromis DirectoryWatch和Cromis.IPC的东西?(无论是使用lazarus还是使用Mac作为目标编译器的XE2)


这个答案将帮助我决定是否应该使用Delphi XE2或Lazarus(一个我根本不熟悉的IDE),并了解以最简单的方式提供/支持Windows和Mac的最佳长期方法是什么。我用过Lazarus,我必须说,它不会花你太长时间来跟上速度(除了你的确切要求)。拉撒路变得越来越专业;许多开发人员每天都是专业的Delphi/XE2编码人员。我认为既然你想让你的应用程序在Mac上可用,你无论如何都会有一些工作要做。但是,如果您决定使用Lazarus,您可以在很大程度上为Linux、Mac和Windows构建应用程序,而无需付出太多努力。。。大多数东西都是从同一个几乎未经修改的源为每个平台构建的。当然,正如您所说,您的代码严重依赖于OTL,因为OTL是一个仅限windows的库,我认为您的工作将为您量身定做。(阅读…你可能需要自己编写一个等价的库,或者让别人为你做)至于Chromis目录监视,我还没有找到任何东西

我希望这有点帮助。干杯


这显示了内置的线程功能。我不知道有一个与您搜索的内容相当的库。干杯。。。Delphi应该有一个跨平台并发支持库,真的…@David:我们使用它非常成功。实际上与我们的Kylix冒险完全不同;-)@mj2008:老实说,我没有研究OTL源代码,但我倾向于认为它与Windows API紧密相关(我确信Cromis DirectoryWatch是)。另外,我担心TThread绝对不是OTL的对手,我甚至无法想象在短时间内使用它!RO有点贵(我的意思是IPC只需要400美元,伙计,这很痛!),但它似乎是最后的选择,谢谢!OTL之所以是windows,只是因为它借助windows消息传递和windows API在很多地方等待,因此,目前,OTL不是跨平台的选项。IMHO更改OTL并不意味着一些重写,而是一个完整的重写,因为您必须更改所有解决问题的方法,并求助于更基本的构造,如TThread,手动数据传递。你真的知道OTL吗?我想我用了一些加拿大的保守说法。我知道这是一项艰巨的工作。不,我不知道OTL,只是我在梳理网络时用了些什么。不过,我对Lazarus的评论是,您的特定问题可能需要大量的重写,这一事实并不否定Lazarus环境非常容易接近这一事实。干杯这不是我的问题,因为我不是OP。你的陈述可能是正确的,但请记住你首先回答的是涉及OTL的特定OP问题,IMHO,OTL是这里的主要问题,而不是编译器。干杯!!:)@谢谢你的评论。这是个好建议。我编辑了我的回答,以便更准确地反映我所关注的问题的一部分。(我是新来的,非常感谢你的评论)。我没有删除我的回复,因为它确实为帖子的标题提供了一个很好的答案,任何浏览对这个问题感兴趣的人都会得到一些我认为有用的东西。干杯谢谢你的建议快乐的程序员和@jachgrate。我完全同意jachguate的观点,OTL生活在另一个星系,远离TThread。我发现了一个名为的库,作者表示他以前与(OTL的作者)合作过。我不知道它有多好,但它是FreePascal中唯一超越TThread的。Primoz已经在一份声明中表达了他对Delphi&Mac的看法