問題タブ [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.
android - Android XML で何かを実行すると「未処理のイベント ループ例外」が発生する
Android (Eclipse 3.6.2) で xml レイアウトを使用して非常に最小限のことを行うと、この「未処理のイベント ループ例外」エラーが発生します。私がすることはすべて、このエラーが発生します。そして、ダイアログ ボックスは "Error...35" のようなものになります。グラフィカル エディターで ImageView を移動するか、xml と入力するだけです (キーストロークごとに新しいエラーが発生します)。それも一つだけの間違いではありません。これらの「未処理のイベント ループ例外」エラーが 7 つまたは 8 つ連続して発生しています。
エラーログエラー内のコードは次のとおりです。
c++ - Qt を使用してゲーム オブジェクトを更新/レンダリングする
Qt 使用時にゲーム オブジェクトを更新およびレンダリングする方法を知りたいです。たとえば、典型的なゲームではイベント ループがありますが、Qt にはexec()
. Qt を使用してゲーム オブジェクトを更新およびレンダリングする正しい方法は何ですか? 各フレーム間の時間を取得してゲーム オブジェクトを更新するにはどうすればよいですか? このすべてに別のスレッドを使用しますか?
私の質問は、標準の Qt プロセスを回避しようとしていないことを除いて、このスレッドと非常によく似ています。
編集:不完全な質問で申し訳ありません。tmpearce はすでに私の質問に答えていると思いますが、他の誰かが同じ問題を抱えている場合に備えて、私がやろうとしていることの基本的な例を次に示します。
乾杯。
c++ - キーボード イベント キューを応答性が高く、CPU パワー全体を使用しないようにする方法
Sdl ゲームを作成しています。これは 2D シューティング ゲームです。SDL を使用してサーフェスをインポートし、OpenGL を使用して画面に描画しています (SDL よりも高速に動作するためです)。2 つのスレッドを実行しています。1 つは処理とレンダリング用で、もう 1 つは入力用です。基本的に、処理はCPUの1〜2%を占めていますが、入力ループは25%を占めています(クアッドコアでは1つのフルコアです). それぞれの前に SDL_Delay(1) を実行してみましたが、うまくいきましwhile (SDL_PollEvent(&keyevent))
た! プロセス全体の CPU 負荷を 3% に減らします。ただし、厄介な副作用があります。プログラム全体の入力はハンディキャップです: 押されたすべてのキーを検出するわけではありません.たとえば、キャラクターを動かすために、キーボードを叩いて反応するのに最大3秒かかる場合があります.
SDL_PeepEvent()
また、 andを使用して解決しようとしましたSDL_WaitEvent()
が、同じ (非常に長い!) 遅延が発生しています。
イベント ループ コード:
計算/レンダリング ループのコード:
誰にもアイデアはありますか?
c++ - C++ - イベントループの作成
ライブラリなしでC ++でイベントループを作成する方法を知っている人はいますか? クロスプラットフォームである必要はありません。私は Mac を使用しています。基本的に、ユーザーが上矢印キーを押すまでプログラムを実行して何もしないようにしたいのですが、プログラムは「あなたが押した」などを出力します。私が考えることができるのは、無限while
またはfor
ループを使用して入力を取得するcin
ことだけですが、矢印キーを検出できるとは思わずcin
、「\ n」に達するまでプログラムを一時停止すると思います。
私はそれを次のようにしたいと思います:
スレッドがなくても可能だと確信しています。これは何かで達成できると聞いたことがありますが、どうすればよいfd_set
かわかりません。
どんな助けでも本当に感謝しています。
編集:
イベントがない場合、プログラムはバックグラウンドで実行する必要があります。たとえば、Microsoft Word はユーザーがボタンを押すまで停止せず、実行を続けます。そのようなものが欲しいのですが、GUIではなくコマンドラインです。
user-interface - GTK+ アプリケーションでのモーダル ループ
ユーザーが GTK+ ウィジェット内のどこか (描画領域に似ています) をクリックするまで待機し、マウス座標を返す関数を作成しようとしています。この関数は、入力が受信されるまで待機するという点でモーダルに動作する必要があります。TrackPopupMenu
Windows API に精通している人は、メニュー項目が選択されるまで待機する関数との類似点に気付くかもしれません。
ここでやろうとしていることは、Windows API を使用して「セカンダリ メッセージ ループ」を実行することに似ています。GTK+ ではどのように行われますか?
node.js - Nodejsのイベントループについて問い合わせる
Nodejs がすべてのイベントをバックグラウンド ループで処理していることはよく知られています。しかし、すべてのアクティブなイベントを監視するにはどうすればよいでしょうか?メモリ不足やデッドロックの潜在的なリスクはありますか?
javascript - Nodejs イベント ループ
nodejsアーキテクチャには内部的に2つのイベントループがありますか?
- libev/libuv
- v8 JavaScript イベント ループ
I/O 要求で、ノードは libeio への要求をキューに入れ、libev を使用してイベントを介してデータの可用性を通知し、最終的にそれらのイベントはコールバックを使用して v8 イベントループによって処理されますか?
基本的に、libev と libeio は nodejs アーキテクチャにどのように統合されていますか?
nodejs の内部アーキテクチャを明確に示すために利用できるドキュメントはありますか?
c++ - Gtkmm:後でウィンドウを追加する
他の構成に直面したときにまったく異なる動作をする「汎用」アプリケーションを作成しているため、起動時にまだgtkウィンドウを知らなくても、gtkウィンドウを表示する必要があります。複数のウィンドウ(モーダルダイアログではなくスタンドアロンウィンドウ)を同時に表示する必要がある場合もあります。しかし、起動時に1つのgtkイベントループを開始できれば素晴らしいと思います。
ループが開始された後、そのループにウィンドウを追加することはどういうわけか可能ですか?Gtk::Application
インデントされた動作を正確にサポートしているように見えるクラスを見つけましたが、クラスの使用に制限されていますGtk::Main
。
python - ユーザー入力を非同期に取得し、Python でイベント ループに渡す
基本的にテキストベースの戦闘ゲームであるシングルプレイヤー MUD を構築しています。ネットワーク化されていません。
ユーザー コマンドを収集してイベント ループに非同期で渡す方法がわかりません。ゲーム イベントが発生している間、プレイヤーはいつでもコマンドを入力できる必要があります。そのため、raw_input を使用してプロセスを一時停止しても機能しません。select.select のようなことをしてスレッドを使用する必要があると思います。
以下の例では、userInputListener() のモックアップ関数を使用しています。ここでコマンドを受け取り、入力がある場合はそれらをコマンド Que に追加します。
次のようなイベント ループがある場合:
そこにユーザー入力を取得するにはどうすればよいですか?
もっと簡単に言えば、別のループが同時に実行されている間にユーザー入力を保存する例を誰か教えてもらえますか? そこまで行けば残りはわかる。
multithreading - 非同期ノンブロッキングループとマルチスレッドの実際の例は?
私は最近Node.jsで開発を行っており、イベントループまで何が起こっているのかをよく理解しています。私がjavascriptの経験を持っていることを考えると、Nodeは私が使用するのに理にかなっていますが、誰かがマルチスレッドシステムの使用をやめて、パフォーマンスのために非同期に行ったことがありますか?または、パフォーマンスのためにマルチスレッドではなく非同期を使用することを選択しましたか?
現実の世界でマルチスレッドに勝った非同期ノンブロッキングI/Oの実際の例は何ですか?