問題タブ [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 - EventQueue で待機している Runnable の数を調べる
EventQueue で現在キューに入れられている Runnable の数を特定する方法はありますか?... システムの EventQueue、つまり EDT で実行されるすべての Runnable を意味します。そして、キューを台無しにしますか?
私がやりたいのは、GUI Runnables を優先することです... ユーザー主導の GUI イベントが発生した場合は、すぐに実行する必要があり、キューに入れられた Runnables の前にキューをジャンプします (ちなみに、これらはすべて変更に関係しています)。非表示の Swing コンポーネント 注意: 最新の Swing ガイドライン: すべての Swing コンポーネントは、非表示であっても EDT で変更する必要があります)。
「緊急」および「非緊急」Runnables を使用した単純で不自然なキューの可能性があります。各 Runnable は「観察可能な」AtomicInteger カウンターをインクリメントし、それぞれの実行によってそれをデクリメントできます...そして BlockingQueue はそれを保証します緊急でないランナブルは、BlockingQueue のサイズが 1 (または 2 または 0) に変更された場合にのみ「invokeLater」に送信されます。本能的には、そのような配置ではかなりのレイテンシーが発生すると思います。
さらに、EDT 自体のキューに直接干渉できると便利です。自分の EDT キューをロールする必要がありますか? それは可能ですか?
明らかに、EDT キューの状態の監視 (またはそのキューへの介入) は、非 EDT スレッドから行う必要があります。私が知っている限り、「スレッドの可視性」の問題があるかもしれません...
python - PyQt4-頻繁に押して放すと検出されたキーを押し続けますか?
QApplicationが重要なイベントを処理するときに、いくつかの異常な動作に気づきました。これは、私が作成したいと思っていた小さなゲームを危険にさらします。
キーを押したままにすると、一度トリガーしてキーが解放されてもう一方がトリガーされるのを待つのではなく、keyPressEvent
thenメソッドが繰り返し(そして非常に頻繁に)呼び出されます(これは望ましい、確かに期待される動作です)。keyReleaseEvent
keyPressEvent
これにより、パフォーマンスの大きな問題が発生します。複数のキーを押したままにすると、プログラムによって一部が完全に無視されるようになります。これは、おそらくイベントキューが問題になっているためです。
このプログラムは、繰り返される呼び出しを示しています。
このプログラム(Qtのゲームの可能性をテストするために使用していたばかげたグラフィカルなもの)は、既存のキーを保持するときに新しく押されたキーを無視することを示しています。
上記のプログラムを実行するとわかるように、3つまたは4つを超えるキーを押し続けると、現在保持されているキーが解放されるまで、新しいスパイクは確立されません。
keyPressEvent
物理的に解放されていないキーに対して1回だけトリガーされるような、この動作を防ぐにはどうすればよいですか?
javascript - Javascriptmousemoveイベントキュー
Javascriptでは、mousemoveイベントハンドラーで、キューに保留中のmousemoveイベントがあるかどうかを判断できますか?
または、できれば、最新のイベントを除く、キュー内のすべてのmousemoveイベントをイベントキューにスキップさせることは可能ですか?
私はmousemoveと他のマウスイベントを使用して、ユーザーが画面上で要素をドラッグできるようにしています。すべてのmousemoveイベントでドラッグされたアイテムを再描画するCPUとGPUサイクルを無駄にする必要はありません(上部と左側のCSSプロパティを更新します) )、中間イベントを十分に迅速にスキップできる限り。
私のサイトでは現在、パフォーマンスや視覚化の問題は発生していません。JavaScriptをできるだけ効率的にしたいだけです。
java - スイングのEDT(ダミー用)
それで、私は小さなゲームに取り組んでいますが、GUI を除いて、非常にうまく動作します。基本的に、ボタンをクリックするときの GUI を変更する必要があります。そのためには、次のコードを使用して EDT でコードを実行する必要があることに気付きました。
コードのどの部分がこれに関係しているかはわかりません。GUI (クラスのコンストラクター) を作成する部分は? または、値を変更する部分のみ(その場合Listener.actionPerformed()
)?実際にこれのボットをテストしましたが、どちらも機能しませんでした。
今私が知りたいのは、次のコードを変更して、クリックしたときにボタンを更新する方法です。上記のコードにその一部を埋め込む必要がありますか、それとも完全に間違っていますか?
java - イベントディスパッチスレッド
イベントディスパッチスレッドと、メインスレッドのような通常のスレッドとの違いは何ですか?
コーディングによって、これら2つのコードの違いは何ですか:
メインスレッドやその他の通常のスレッドでは実行できない EDT の機能は何ですか?
java - 高水準プログラミング言語を使用した単純化された MIPS CPU
高レベルのプログラミング言語、できればJavaを使用して、単純化されたMIPS CPU用のアナライザー/シミュレーターを設計しようとしています。検討中の MIPS CPU は、CDC 6600 スコアボード スキームを採用して、命令スケジューリングを動的にスケジュールし、キャッシュ ヒットとキャッシュ ミスのロードおよびストア命令にキャッシュを使用します。このシミュレーションの開始時のアドバイスが必要です。
このシミュレーションに Event Queue を使用する必要がありますか? もしそうなら、どのように?