问题标签 [event-loop]

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 回答
630 浏览

qt - Qt单选按钮切换显示延迟

我在这里有一个 Qt 应用程序,其中有一个带有 5 个垂直对齐的 QPushButtons 的主窗口。这些按钮以单选组方式工作。这意味着,它们是可检查的和自动排他的。由于我需要能够在主窗口调整大小时调整按钮文本的字体大小,因此我包含了我自己的 QPushButton 覆盖并将其设置为设计器中的自定义小部件。

我不明白的是,当我通过键盘快捷键从一个按钮切换到另一个按钮时会有很大的延迟!当我用鼠标单击时也是如此。我会说这个延迟大约是 0.5 到 1 秒。在不同的机器上试过。

我真的需要摆脱这个!

任何人都知道我可以做些什么来解决这个问题?

编辑:刚刚发现当我只使用普通的 QPushButtons 时这种行为是相同的。当按钮变大时,延迟似乎越来越多。任何帮助都非常感谢!!!

0 投票
3 回答
1841 浏览

jquery - ajax调用的alert-ing返回值

(1. 你觉得拥有一个可以调用的全局 jQuery ajax 'helper' 有用ajax(url,data,async)吗?)

如果我正在调用一个放置 GET 并返回成功响应的函数。

如果我这样做,alert(get_ajax())我会收到“未定义”的警报..即使有返回值

我看到它是一个事件循环问题,但我async:false在 ajax 调用中。想法?

0 投票
1 回答
323 浏览

user-interface - Application.DoEvents 是否将消息发送到单独的线程?

我一直在尝试理解事件循环(不太顺利),并且我读过 Windows 消息传递循环是单线程的。如果是,Application.DoEvents 如何工作?事件循环不是一次处理一条消息并在处理每条消息/事件时阻塞吗?消息事件循环是否需要存在于与处理 Application.DoEvents 消息的线程不同的线程上?如果有单独的线程,我们将哪个线程称为“主”线程?我确定我错过了一些非常简单的东西,我只是不知道它是什么。

0 投票
2 回答
4929 浏览

c++ - 在没有 WndProc 的情况下运行 win32 事件循环的不同方式的想法?

在纠结多线程、回调、win32 api函数等麻烦事的同时,我收到了一个idea event。(呵呵)

如果我没有定义全局(或在设计类时为静态)回调函数,而是在注册窗口类时分配DefWindowProc了 for lpfnWndProc,然后在单独的线程上运行整个事件循环,该怎么办?

这样我就不必在类中实现回调this时解决问题, 并且主线程的执行继续,将你从那个被上帝抛弃的 while 循环中解放出来,让你做任何事情,甚至打开另一个窗口(耶!)

“正常”方式:

我新发现的很棒的方式:

你们有什么感想?

0 投票
2 回答
6724 浏览

c - 可以运行多个主循环吗?

我正在使用 libfuse 和 glib 事件接口,我遇到了一个问题,我需要同时运行多个主循环(glibg_main_loop_runfuse_loop_mt)。

我已经尝试在辅助上下文下为 glib 的事件循环创建一个分离线程,例如:

但是 glib 事件循环不会接收任何触发的事件。我在这里完全不在基地吗?处理多个主循环的正确方法是什么?

0 投票
5 回答
8307 浏览

java - 对 Java 事件循环库的建议

我正在寻找类似 JavaScript 的东西setTimeout,但带有Runnable, 具有以下限制:

  • 每次超时不需要单独的专用线程。
  • 已经开发和深思熟虑。
  • 甚至可能包括其他功能。(取消超时?,等待什么?,异步 I/O?)
  • 不需要任何 GUI 库。(Java FX/Swing/AWT 都内置了事件循环)

你有什么建议吗?

编辑:我找到了我要找的东西。如果有一个库还包含与非阻塞或异步 I/O 相关的内容,那将是一个加分项。

0 投票
1 回答
224 浏览

tcl - 如何在 vwait 中的每次迭代后永远评估给定的脚本?

vwait forever运行事件循环直到exit命令。

在事件循环的每次迭代中,我都有一些事情要做。我怎样才能做到这一点?

0 投票
3 回答
7048 浏览

qt - Qt:事件循环开始时是否有通知?

我有一个带有这种 main() 的 Qt 应用程序...

在 mainWin 之前创建的另一个线程需要知道它何时可以开始与 mainWin 通信。但是由于 mainWin 使用 Qt 信号、槽、计时器等,它并没有真正准备好直到事件循环运行(通过 exec())。

我的问题是:事件循环开始时是否会发出一些信号或事件?

考虑一下。在 mainWin.Init() 中,您可以创建类似 QTimer 的东西,甚至可以调用 .start() 来启动它。但在调用 exec() 之前,它实际上不会运行并触发事件。这就是为什么我需要知道事件循环何时真正开始。

0 投票
1 回答
1116 浏览

php - Libevent 超时循环退出

我在让 PHP libevent 扩展在超时时跳​​出循环时遇到了一些困难。这是我到目前为止基于 PHP.net 文档页面上的演示所获得的内容:

我可以看到event_add传递给 print_line() 的事件的超时值,如果这些事件相隔超过 2 秒,我会得到一个EV_TIMEOUT而不是EV_READ. 然而,我想要的是让 libevent 在print_line达到超时后立即调用,而不是等待下一个事件来给我超时。

我试过使用event_base_loopexit($base, 2000000),这会导致事件循环立即退出而不阻塞事件。我也尝试过传递EV_TIMEOUTevent_set,这似乎根本没有效果。

有没有人设法让这个工作?我知道 event_buffer_* 东西适用于超时,但是我想使用标准event_base函数。其中一个PECL 错误谈到了 event_timer_* 函数,这些函数确实存在于我的系统上,但是它们根本没有记录在案。

0 投票
1 回答
1089 浏览

qt - QT 中未记录的 ProcessEventsFlag 枚举

我注意到 QT 上的模态对话框使用本地 QEventLoop 并将 ProcessEventFlags 设置为“DialogExec”

QT 助手没有关于这个枚举意味着什么的信息。还有一个叫做 EventLoopExec。任何人都知道它们的实际含义以及为什么没有记录它们?

谢谢