問題タブ [invokelater]

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 に答える
1252 参照

java - SwingWorker からリアルタイムで GUI を更新する

わかりました、これは昨日の質問「 SwingWorker でのエラー処理」のフォローアップの質問です。

の中で呼んでもいいのではないかということを考えて、さらに一歩踏み込んで、バックグラウンドスレッドの中で呼んでもいいのではないか?SwingUtilities#invokeAndWait()SwingWorker#doInBackground()SwingUtilities#invokeLater()

説明する別の SSCCE:

この SSCCE では、 と を介してDeterminateLoadingFrame結果を公開しながら、何が起こっているかについてユーザーを更新するために を更新しています。publish()process()

これは、元の質問が昨日尋ねたのと同じくらい正統ではないようです。それでも、それが良い考えではないという理由を思いつくことはできません。私たちは適切なスレッド化ポリシーを順守しています。そして、このように GUI を更新することは、(私には) 非常に便利で用途が広いように思えます。process()実際には、およびよりもはるかに多くのpublish().

さらに、SSCCEが示していることを達成することは、厳密に使用するのが難しく、メソッドprocess()publish()どのように値を渡すのでしょうか?iprocess()

0 投票する
1 に答える
258 参照

java - スイングタイマーとinvokeLaterを使用してSwingコンポーネントを更新するときにデッドロックを防ぐ方法は?

一部の Swing コンポーネントを更新する任意の同期メソッドに対して、このメソッドを呼び出すスレッドがすべて Swing Timer またはSwingUtilities.invokeLater(). Swing Timer タスク内で invokeLater() を呼び出す必要はなくなると思います。

したがって、いくつかの Swing タイマーとコンポーネントを更新するいくつかのオブザーバーを用意します。オブザーバーはすべて呼び出しinvokeLater()、Swing タイマーは私の任意のメソッドupdateComponents()を直接呼び出します。

それでもデッドロックが発生する可能性がある場合、invokeLater()デッドロックが発生しないことを確認できますか?

0 投票する
2 に答える
375 参照

java - EDT について (Java)

EDT で何かを実行する必要がある場合とそうでない場合について、インターネットで多くの記事を読みました。しかし、私はまだ理解できていないので、これについていくつか質問したいと思います。

  1. EDTでデフォルトで実行されるコードは何ですか?

  2. EDT の外部でデフォルトで実行されるコードは何ですか?

  3. InvokeLater() をいつ使用して、デフォルトで EDT の外部で実行されるものを EDT の内部で実行する必要がありますか?

  4. 新しいスレッドを作成し、そのコードをその中に入れることによって、コードの一部が EDT 内で (デフォルトで) 実行されないようにする必要があるのはいつですか?

ありがとう

0 投票する
2 に答える
65 参照

java - AWT スレッドの識別

Swing から JTextComponent を装飾するクラスがあります。含まれているメソッドはどのスレッドからでも呼び出すことができるため、JTextComponent で動作するコードが AWT スレッドによって実行されるようにする必要があります。

2 番目の要件は、AWT スレッドがタスクを処理するまで、メソッド全体を呼び出すスレッドが「待機」することです。

コードはうまく機能していますが、まだ 1 つの問題があります。私のクラスを使用したい人が AWT スレッドの名前を変更すると、デッドロックに陥ります。

AWT スレッドを明確に識別し、この問題を回避する方法はありますか?

ありがとうございました

0 投票する
1 に答える
245 参照

java - Java Swing スレッド セーフティと EDT

JFrames は、invokeLater を使用してイベント ディスパッチ スレッド (EDT) で安全に作成する必要があることを理解しています。メイン メソッド内で JFrames を 2 つ作成しようとしています。

コード:

これで、メニューが作成されます (ここで必要な処理はごくわずかであるため、これは問題なく機能するようです)。この後、メニューが使用され、ボタンmenu.setVisible(false)が呼び出されます。その後、EDT でメソッドをキューに入れます。Simulation は から派生したクラスJFrameです。そのコンストラクタは次のとおりです。

addComponentsToPane()メソッドがすべての必要なコンテンツを JFrame に追加する場所。このコンストラクターの後に呼び出される run() メソッドは単純です。

ただし、このコードを実行すると、メニュー ウィンドウしか表示されません。メニューを終了し、シミュレーション ウィンドウが表示されたときに、プログラムが終了したように見えます。

ここで私が間違っていることはありますか?

0 投票する
3 に答える
596 参照

c# - 10 ミリ秒ごとに Type からメソッドを実行する方法

MonoBehaviourUnity 3D エンジンを複製しようとしています。私は Linux で monodevelop を使用しており、ほとんどのテストは Windows で行われますUnity 3D engine editor

詳細については、ここMonoBehaviour.Updateで読むことができます

Update10ミリ秒ごとに継承するすべてのタイプでメソッドを呼び出したいですMonoBehavior

これが私がスタートでやっている方法です

0 投票する
1 に答える
82 参照

java - 私の Java スイング アプリケーション jcomponents はどちらも描画せず、計算が完了した後にのみ再描画しますか?

私は音声認識システムを持っています。これがlisten(button)機能です

私の結果は次のようになります:ボタンアイコンは同じままで、作業が完了すると変更されます作業が文字列になっている間、システムは印刷されます"start speaking..."

recognizer.recognize()関数:

追加しようとしました:

うまくいきませんでした。助けてください。計算中にボタンのアイコン画像を変更したいのですが...