delphi - OmniThreadLibrary 可以在 Delphi Windows 服务中使用吗?

标签 delphi omnithreadlibrary

OmniThreadLibrary 是一个非常有趣的库。但是,我担心它在 Windows 服务中的使用。

存储库中的所有测试都是基于表单的。他们中的大多数人(隐式或显式)使用基于消息的基础设施(通过 TOmniEventMonitor)。

我做了一个小的 DUnit 测试,但它从未按预期工作。在我将 Application.ProcessMessages 放在代码的几个关键位置后,它才开始工作。 (!)

相同的测试在 Forms 应用程序中工作正常。但永远不要在像 DUnit 测试这样的连续过程代码中。

我错过了什么?我如何在 Windows 服务中使用 OmniThreadLibrary?还是在连续的过程中没有在几个点传播 Application.ProcessMessages?

最佳答案

服务中的 OmniThreadLibrary 工作正常。有一个 example在 repo 协议(protocol)中显示。

关于delphi - OmniThreadLibrary 可以在 Delphi Windows 服务中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22451501/

相关文章:

string - 当字符串没有自动触发时如何触发 COW

delphi - 使用 TStreamReader 和 TStringList 处理非常大的文本文件

delphi - 使用 IOmniTaskControl/TOmniWorker 时等待 Invoke 完成

delphi - Delphi Parallel.For 是否有 MaxParallism

delphi - 如何从具有 protected 数据类型的类继承?

delphi - 如何避免使用 TWebBrowser 刷新

delphi - 如何跟踪 TIdHttp 的原始请求和响应内容

multithreading - OTL 的 Parallel.ForEach 重复调用次数的限制

delphi - 如何从第二个线程更新进度指示器?

multithreading - OmniThreadLibrary:如何检测所有递归调度(=池化)线程何时完成?