问题标签 [eventqueue]
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.
java - 保存 EventQueue 事件并恢复
是否可以从事件队列中保存待处理的事件然后恢复它们?
有以下工作流程:用户单击 JTable 行并检查行是否更改,这取决于打开的检查模式确认窗口。当用户双击行详细视图时打开。因此,当打开模式窗口时,它会吞下所有鼠标事件,因此双击不会到达 JTable。
我想在打开模式窗口之前以某种方式保存事件队列中的所有待处理事件,并在模式窗口关闭后恢复它们。
以下我试过
这没有帮助,双击不会到达 JTable。
我也尝试推动整个队列:
在这种情况下,程序似乎陷入僵局。
任何建议表示赞赏。
java - 找出有多少 Runnables 在 EventQueue 上等待
有什么方法可以确定EventQueue 中当前有多少Runnables 排队?...我的意思是系统EventQueue,即所有要在EDT 中运行的Runnables。也许会弄乱队列?
我想做的是优先考虑 GUI Runnables ......如果出现用户驱动的 GUI 事件,它应该立即执行,在任何排队的 Runnables 之前跳过队列(顺便说一下,它们都将关注修改不可见的 Swing 组件。注意最新的 Swing 指南:所有 Swing 组件都必须在 EDT 上更改,即使是隐藏的)。
有可能使用“紧急”和“非紧急”Runnables 建立一个简单的、人为的队列:每个 Runnable 可以增加一个“可观察的”AtomicInteger 计数器,然后每个 Runnable 的执行都可以递减它......并且 BlockingQueue 将确保仅当 BlockingQueue 大小更改为 1(或者可能是 2 或 0)时,非紧急 Runnables 才会提交给“invokeLater”。本能让我认为这样的安排会引入相当多的延迟。
另外,能够直接干扰 EDT 自己的队列会更好。我应该推出自己的 EDT 队列吗?那可能吗?
注意显然必须从非 EDT 线程中观察 EDT 队列的状态(或对其进行干预)。据我所知,可能存在“线程可见性”问题......
python - PyQt4 - 按住一个被检测为频繁按下和释放的键?
当 QApplication 处理关键事件时,我注意到一些不寻常的行为,这危及了我希望制作的小游戏。
按住一个键会导致keyPressEvent
thenkeyReleaseEvent
方法被重复(并且非常频繁地)调用,而不是触发keyPressEvent
一次并等待键被释放以触发另一个键(这是期望的和公认的预期行为)。
这会导致巨大的性能问题,以至于按住多个键会导致程序完全忽略某些键,这可能是因为事件队列正在遭受损失。
该程序演示了重复调用:
这个程序(我用来测试 Qt 游戏潜力的一个愚蠢的图形工具)演示了在按住现有键时忽略新按下的键。
通过运行上述程序可以观察到,按住超过 3 或 4 个键将导致不会建立新的尖峰,直到释放当前持有的键。
我怎样才能防止这种行为,例如keyPressEvent
只为尚未物理释放的密钥触发一次?
javascript - Javascript mousemove 事件队列
在 Javascript 中,是否可以在 mousemove 事件处理程序中确定队列中是否有任何挂起的 mousemove 事件?
或者,最好是,是否可以让事件队列跳过队列中的所有 mousemove 事件,除了最近的事件?
我正在使用 mousemove 和其他鼠标事件来允许用户在屏幕上拖动元素,并且我不需要浪费 CPU 和 GPU 周期在每个 mousemove 事件上重绘拖动的项目(在其中我更新顶部和左侧 CSS 属性),只要我能足够快地跳过中间事件。
我的网站目前没有遇到任何性能或可视化问题;我只是想让我的 JavaScript 尽可能高效。
java - EDT on Swing(傻瓜版)
所以,我只是在做一个小游戏,除了 GUI 外,它运行得很好。基本上,我需要在单击按钮时修改 GUI。我意识到我必须使用以下代码在 EDT 上运行我的代码:
我只是现在不关心我的代码的哪一部分。我创建 GUI 的部分(我的类的构造函数)?或者只是我修改值的部分(在这种情况下Listener.actionPerformed()
)?实际上我测试了这个机器人,都没有工作。
现在我想知道的是如何修改以下代码以在单击按钮时更新按钮?我必须在上面的代码中嵌入它的一部分还是我完全错了?
java - 事件派发线程
事件调度线程和任何普通线程(如主线程)在创建摆动组件和处理事件方面有什么区别,事件调度线程在主线程上的特点是什么
通过编码,这两段代码有什么区别:
EDT 做了哪些主线程或任何其他普通线程无法完成的工作?
java - 使用高级编程语言的简化 MIPS CPU
我正在尝试使用高级编程语言(最好是 Java)为简化的 MIPS CPU 设计分析器/模拟器。所考虑的 MIPS CPU 采用 CDC 6600 记分板方案来动态调度指令调度并使用缓存进行加载和存储指令以进行缓存命中和缓存未命中。我需要一些关于这个模拟的启动建议。
我应该为这个模拟使用事件队列吗?如果有怎么办?
javascript - 在 Node.js 中处理下一个事件
对于每个请求可能需要一两秒钟的应用程序,是否可以在事件循环的每次迭代中只处理一段操作代码?例如:
会是这样吗?
如果这是这样做的方法,Node 会自动开始处理队列中的下一个事件吗?
javascript - 了解 node.js 事件队列和 process.nextTick
我很难理解它到底是怎么process.nextTick
做的。我以为我理解了,但我似乎无法复制我认为这应该如何工作:
在foo
循环时,我将发送几个请求,假设handler
将在后面排队几次foo
,callback
只有在foo
完成时才入队。
如果我对它的工作原理是正确的,我假设结果将如下所示:
但它没有,它只是顺序的:
I see that foo
is returning before executing callback
which is expected, but it seems that callback
is NEXT in line, rather than at the end of the queue, behind all of the requests coming in. Is that the way it works? Maybe I'm just not understanding how exactly the event queue in node works. And please don't point me here. Thanks.
python - 基于外部事件从队列中消费(事件队列)
我遇到了一个用例,我想控制芹菜工人如何以及何时将任务从rabbitmq中取出来进行处理。出队将与 celery 上下文之外发生的外部事件同步,但我担心的是 celery 是否给我任何灵活性来控制任务的出队?我试图调查,以下是一些可能性:
使用
basic.get
代替basic.consume
,basic.get
根据外部事件触发。但是,我看到 celery 默认为basic.consume
(推送)语义。我可以在不直接修改核心的情况下覆盖此行为吗?在触发外部事件时自定义远程控制工作人员。但是,从文档中我不太清楚远程控制命令如何帮助我控制任务的出队。
我非常倾向于继续使用 celery,并且可能避免在 AMQP 之上编写自定义队列处理解决方案。