问题标签 [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 投票
2 回答
3130 浏览

android - 在 Android XML 中执行任何操作时出现“未处理的事件循环异常”

当我在 Android(Eclipse 3.6.2)中使用我的 xml 布局做非常少的事情时,我收到了这个“未处理的事件循环异常”错误。我所做的一切都会导致此错误出现。对话框将类似于“错误...35”之类的东西。它就像在图形编辑器中移动 ImageView 甚至键入 xml 一样简单(每次击键都会产生一个新错误)。这也不仅仅是一个错误。连续出现 7 或 8 个“未处理的事件循环异常”错误。

这是错误日志错误中的代码。

0 投票
1 回答
2763 浏览

c++ - 使用 Qt 更新/渲染游戏对象

我想知道在使用 Qt 时如何更新和渲染游戏对象。例如,对于一个典型的游戏,你会有一个事件循环,但 Qt 只有exec(). 使用 Qt 更新和渲染游戏对象的正确方法是什么?如何获取每帧之间的时间来更新我的游戏对象?我是否为所有这些使用单独的线程?

我的问题与这个线程非常相似,除了我不想避免标准 Qt 进程。

编辑:我为不完整的问题道歉。我相信 tmpearce 已经回答了我的问题,但这是我尝试做的一个基本示例,以防其他人遇到同样的问题:

干杯。

0 投票
4 回答
3429 浏览

c++ - 一种使键盘事件队列既响应又不占用整个 CPU 功率的方法

我正在制作一款 Sdl 游戏,它是 2d 射击游戏。我正在使用 SDL 导入表面并使用 OpenGL 在屏幕上绘制它们(这样做是因为它的工作方式比 SDL 更快)。我有两个线程在运行,一个用于处理内容和渲染,另一个用于输入。基本上,处理一个占用我的 CPU 的 1-2%,而输入循环占用 25%(在四核上,所以它是 1 个全核)。我尝试在每个之前执行 SDL_Delay(1)while (SDL_PollEvent(&keyevent))并且它有效!将整个进程的 CPU 负载降低到 3%。但是,有一个令人讨厌的副作用。整个程序输入是有缺陷的:它没有检测到所有按下的键,例如,为了使角色移动,有时需要长达 3 秒的敲击键盘才能做出反应。

我也尝试过使用SDL_PeepEvent()and来解决它SDL_WaitEvent(),但是,它会导致相同的(非常长的!)延迟。

事件循环代码:

计算/渲染循环的代码:

有没有人有任何想法?

0 投票
4 回答
3279 浏览

c++ - C++ - 制作事件循环

有谁知道如何在没有库的情况下在 c++ 中创建事件循环?它不必是跨平台的,我在 Mac 上。基本上,我希望程序运行并且什么都不做,直到用户按下向上箭头键,然后程序将输出“你按下了”或其他东西。我能想到的只是有一个无限whilefor循环并使用 输入cin,但我认为cin无法检测到箭头键,我相信它会暂停程序,直到它到达 '\n';

我希望它看起来像这样:

我有点确定没有线程是可能的,我听说这可以通过fd_set什么来完成,但我不确定如何。

任何帮助将非常感激。

编辑:

当没有任何事件时,程序必须在后台运行。例如,Microsoft Word 在用户按下按钮之前不会停止,它会继续运行。我想要这样的东西,但命令行不是 GUI。

0 投票
2 回答
296 浏览

user-interface - GTK+ 应用程序中的模态循环

我正在尝试编写一个函数,该函数将等到用户单击 GTK+ 小部件(类似于绘图区域)中的某个位置并返回鼠标坐标。该函数的行为应该是模态的,因为它一直等到接收到输入。熟悉 Windows API 的人可能会发现该TrackPopupMenu功能与等待菜单项被选中的功能有些相似。

我在这里尝试做的类似于使用 Windows API 运行“辅助消息循环”。在 GTK+ 中它是如何完成的?

0 投票
1 回答
333 浏览

node.js - 查询Nodejs的事件循环

众所周知,Nodejs 在后台循环中处理所有事件。但是如何监控所有活动事件,是否存在内存不足或死锁的潜在风险?

0 投票
8 回答
29653 浏览

javascript - Nodejs 事件循环

nodejs架构内部是否有两个事件循环?

  • libev/libuv
  • v8 javascript 事件循环

在 I/O 请求上,节点是否将请求排队到 libeio,然后使用 libev 通过事件通知数据的可用性,最后这些事件由 v8 事件循环使用回调处理?

基本上,libev 和 libeio 是如何集成到 nodejs 架构中的?

是否有任何文档可以清楚地了解 nodejs 内部架构?

0 投票
1 回答
1079 浏览

c++ - Gtkmm:稍后添加窗口

因为我正在编写一个在面对其他配置时表现完全不同的“通用”应用程序,所以即使我在启动时还不知道它们,我也被迫显示 gtk 窗口。可能还需要多个窗口需要同时可见(不是模态对话框,而是独立窗口)。但是,如果可以在启动时简单地启动一个 gtk 事件循环,那就太好了。

是否可以在启动后以某种方式将窗口添加到该循环?虽然我发现Gtk::Application该类似乎完全支持缩进行为,但我被限制使用Gtk::Main该类。

0 投票
2 回答
9878 浏览

python - 异步获取用户输入并传递给python中的事件循环

我正在构建一个单人 MUD,它基本上是一个基于文本的战斗游戏。它没有联网。

我不明白如何收集用户命令并将它们异步传递到我的事件循环中。玩家需要能够在游戏事件触发时随时输入命令。因此,使用 raw_input 暂停该过程是行不通的。我想我需要做一些类似 select.select 和使用线程的事情。

在下面的示例中,我有一个 userInputListener() 模型函数,我喜欢在其中接收命令,如果有输入,则将它们附加到命令 Que。

如果有一个事件循环,例如:

我如何在那里获得我的用户输入?

或者更简单地说,任何人都可以向我展示在另一个循环同时运行时存储用户输入的任何示例吗?如果我们能走到那一步,我可以弄清楚其余的。

0 投票
2 回答
1120 浏览

multithreading - 异步非阻塞循环与多线程的真实例子?

我最近一直在使用 Node.js 进行开发,并且对事件循环的情况有一个很好的了解。鉴于我有使用 javascript 的经验,Node 对我来说很有意义,但我想知道,有没有人曾经停止使用多线程系统并使用异步来提高性能?或者选择使用异步而不是多线程来提高性能?

什么是异步非阻塞 I/O 在现实世界中战胜多线程的真实例子?