【问题标题】:Threading Framework for Delphi 7 - any? [closed]Delphi 7 的线程框架 - 有吗? [关闭]
【发布时间】:2011-04-05 05:23:57
【问题描述】:

我正在寻找一些线程框架以避免从头开始编写它。特别是任务排队和同步是我需要的。 我知道 OmniThreadLibrary 很棒,但与 D7 不兼容。 有什么建议吗?

【问题讨论】:

  • 排队:PostMessageQueueUserWorkItem。同步:SynchronizeWaitForSingleObject。您还从操作系统和 RTL 尚未提供的“框架”中寻找什么?
  • Rob,看看 OmniThreadLibrary 以及它简化线程的方式 :)
  • @migajek:嗯,我个人倾向于发现低级的东西更容易理解。原理很简单。
  • 确实,原理很简单,但我想避免重新发明轮子(如果有可用于 D7 的轮子的话;))。
  • 你能不能简单地解释一下你的期望,而不是仅仅指向一个外部包?并非我们通过检查 Omnithreadlibrary 得出的所有结论对您来说都同样重要。

标签: multithreading delphi delphi-7 task


【解决方案1】:

从长远来看,线程框架可能会为您节省数月的工作量,因此取决于拥有一个线程框架对您的重要性,也许您可​​以将此作为升级的理由。并且任何建议您只需要 TThread 和其他 Windows 同步原语的人显然没有编写太多线程代码。我估计我至少花了 3-6 个月的时间来开发我自己的线程框架以使事情变得更简单,并且它很容易为自己“付费”。

【讨论】:

  • “而任何建议你只需要 TThread 和其他 Windows 同步原语的人显然没有编写太多线程代码。”没错,这就像问为什么需要使用 WIN32 API 调用轻松完成所有事情时需要 VCL。
  • 问题不仅在于windows base apis是否足够,问题还在于您是否可以看到与您所针对的应用程序类的应用程序框架分开的线程框架。我对此有些怀疑。
  • 恕我直言,线程框架应该是应用程序框架的一个组成部分。我的目标是服务型应用程序/系统,这些应用程序/系统几乎定义为多线程/分布式系统,因此我的线程框架和我的通信框架紧密集成在一起,因此在线程之间传递消息与在应用程序之间传递消息是相同的。
【解决方案2】:

我这样说并不是在拖钓,但是 TThread 怎么样?尽管不是一个框架,但它确实使使用 Windows 线程的痛苦大大减轻。说真的,做得很好。

以下是一些帮助您入门的链接:

【讨论】:

    【解决方案3】:

    所以您想继续使用 Delphi 7,并且想要一个好的线程库,但又不想从头开始编写。

    我敢肯定,有一天你会升级。那么,为什么要选择一个糟糕的线程库,当你这样做时需要更改。

    我的建议是采用 OmniThreadLibrary,并尝试将其移植到 Delphi 7。然后您将获得升级路径。

    否则,请尝试以下建议之一:How Do I Choose Between the Various Ways to do Threading in Delphi?

    【讨论】:

    • 是否留在 D7 的决定不取决于我,不幸的是 :( 否则我会升级到 Unicode,支持泛型的版本,如 D2010 :) 无论如何感谢链接,我必须不知什么原因错过了。
    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 2011-01-17
    相关资源
    最近更新 更多