问题标签 [omnithreadlibrary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
140 浏览

delphi - 如何将任务添加到 OTL 以进行 LIFO 处理?

我的应用程序扫描文件夹中的图像并从中生成缩略图以在网格中绘制。我有一个OnDrawCell处理程序,它向 OTL 添加一个任务来读取所需的图像,调整它的大小(异步)并返回到一个单元格(在主线程中)。这很好用,除非用户在网格中快速滚动 - 这会将数百个任务添加到队列中。队列的工作方式类似于 FIFO(先进先出,因此用户必须等待所有图像都被处理,然后才能看到滚动到的图像。

我当前的代码:

如何设置添加以 LIFO(后进先出)方式执行的任务?

当然,已经在处理的任务应该继续。我需要从队列中取出的下一个是最后添加的。

0 投票
1 回答
195 浏览

delphi - OmniThreadLibrary C++ 构建器构建问题

我一直在尝试让 OmniThreadLibrary 在构建器中运行,我已经使用它构建好的所有 c++ 所需文件构建了它,但是当我在 c++ 构建器应用程序中使用它时,我收到一堆错误消息,如下所示

[bcc32 错误] DSiWin32.hpp(385):E2040 声明错误终止

生成的hpp文件中这一行代码的一点

静态常量 System::Int8 CSIDL_ADMINTOOLS = System::Int8(0x30);

有没有人在 C++ builder 中工作过或知道解决这些问题的最佳方法

我正在使用 c++ builder 和 OmniThreadLibrary 3.06 版

0 投票
0 回答
247 浏览

multithreading - 在 OmniThreadLibrary 任务中运行时如何触发 TIdHTTP.Disconnect

我想知道如何在 Delphi Seattle 中断开 TIdHTTP 的实例,同时它在 OmniThreadLibrary 的 CreateTask 的匿名过程中执行。

我当前的代码如下所示:

请求有时需要很长时间(如 40-60 秒),用户应该有机会中止请求。

我知道使用 TIdHTTP 的 OnWork 事件,但在我的情况下这不合适。OnWork 在有读/写操作时被调用,但在等待服务器时并非如此。

0 投票
1 回答
1254 浏览

multithreading - 如何在 Delphi 中使用流水线模式

我正在尝试在我的测试项目中实现流水线模式(如何使 Mutlithreded idhttp 调用在 StringList 上工作),但是在将TThread代码调整为流水线模式代码时遇到了困难。关于如何使用它的资源并不多。

我在下面尽力了,请不要投反对票,我知道我的代码很乱,但如果需要我会编辑我的问题。

0 投票
1 回答
142 浏览

http - 如何使用 Rcords 向队列传递参数

我如何将备忘录行字符串传递给TRecords字段以使用主题作为 idHTTP POST 方法的参数?

通常我会这样做

但是在管道模式中我必须使用记录,所以我可以将参数传递给队列。或者有什么方法可以使用EmailName作为 POST 方法的参数?

我的管道代码,使用 HTTP Get

任何帮助表示赞赏。

0 投票
1 回答
221 浏览

multithreading - 如何正确停止所有流水线任务

如何正确停止 Pipleline 任务,我已经尝试过,但是当我按下 Abort 按钮时,我得到了一个 AV,我不太擅长调试,我已经DoOnStop(task);在 OtlParallel 中达到了,然后我不知道下一步该做什么,我相信有什么遗漏吗?

0 投票
1 回答
286 浏览

multithreading - Delphi - Omnithreadlibrary,控制台应用程序中的主线程死亡

我在控制台应用程序的 BackgroundWorker(高级 OmniThreadLibrary 组件)中的主线程有问题。主线程(整个应用程序)中的对象在为后台任务调度 WorkItems 后立即死亡。主线程不等待 OnRequestDone 方法调用。

有什么办法可以解决这种情况吗?

0 投票
1 回答
245 浏览

delphi - Delphi OmniThreadLibrary 3.03b:IBackgroundWorker - 终止不起作用

我在 OmniThreadLibrary 中终止 BackgroundWorker 时遇到问题。一切正常,但是当我想终止 BackgroundWorker 时,终止失败,BackgroundWorker 还活着。因此,作为批处理运行的整个应用程序仍然存在。

0 投票
1 回答
566 浏览

multithreading - 如何从主线程完全终止并行任务?

我怎样才能从主线程中完全终止这个后台线程,即甚至OnTerminated不会执行其中的代码?

0 投票
1 回答
724 浏览

delphi - 如何为 Parallel.Async 后台任务设置更高的任务优先级?

我需要为Parallel.Async后台任务分配更高的任务优先级。由于 OmniThreadLibrary 具有SetPriority:如何为该Parallel.Async任务设置特定的优先级?