gpt4 book ai didi

delphi - 有谁有一个关于如何使用 Synapse 的 Heartbeat 功能的好例子吗?

转载 作者:行者123 更新时间:2023-12-02 07:48:02 27 4
gpt4 key购买 nike

我正在使用 Synapse for Delphi,但是在 HTTP 下载期间,GUI 当然会卡住。查看文档,他们建议使用 OnHeartbeat 方法。

(参见 http://www.ararat.cz/synapse/doku.php/public:howto:heartbeat )

不幸的是,他们实际上没有给出任何代码示例,虽然概念很简单,但用法并不明显。

这是每个套接字(对象)设置还是每个应用程序(类)设置?另外,回调过程本身被定义为一个对象,这有点不寻常。有真正使用过这个的人愿意分享示例代码片段吗?

最佳答案

尽管我建议在单独的线程中运行下载,但阅读文档后您必须将事件处理程序 Hook 到 OnHeartBeat 事件。

在该事件处理程序中,您可以调用 Application.ProcessMessages() 但这很危险,因为事件可能在您真正需要它们之前就被触发了。我将使用自定义方法仅调用 Paint 例程。您可以将表单的句柄作为参数传递,或者将任何控件转换为 TWinControl 并使用句柄属性。这只会重新绘制表单/控件,但不允许鼠标/键盘交互。

procedure AllowRepaints(h: HWND);
var
m: tMsg;
begin
while PeekMessage(m, h, WM_PAINT, WM_PAINT, PM_REMOVE) do
DispatchMessage(m);
end;

关于delphi - 有谁有一个关于如何使用 Synapse 的 Heartbeat 功能的好例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1815442/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com