問題タブ [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.
java - SwingWorker からリアルタイムで GUI を更新する
わかりました、これは昨日の質問「 SwingWorker でのエラー処理」のフォローアップの質問です。
の中で呼んでもいいのではないかということを考えて、さらに一歩踏み込んで、バックグラウンドスレッドの中で呼んでもいいのではないか?SwingUtilities#invokeAndWait()
SwingWorker#doInBackground()
SwingUtilities#invokeLater()
説明する別の SSCCE:
この SSCCE では、 と を介してDeterminateLoadingFrame
結果を公開しながら、何が起こっているかについてユーザーを更新するために を更新しています。publish()
process()
これは、元の質問が昨日尋ねたのと同じくらい正統ではないようです。それでも、それが良い考えではないという理由を思いつくことはできません。私たちは適切なスレッド化ポリシーを順守しています。そして、このように GUI を更新することは、(私には) 非常に便利で用途が広いように思えます。process()
実際には、およびよりもはるかに多くのpublish()
.
さらに、SSCCEが示していることを達成することは、厳密に使用するのが難しく、メソッドprocess()
にpublish()
どのように値を渡すのでしょうか?i
process()
java - スイングタイマーとinvokeLaterを使用してSwingコンポーネントを更新するときにデッドロックを防ぐ方法は?
一部の Swing コンポーネントを更新する任意の同期メソッドに対して、このメソッドを呼び出すスレッドがすべて Swing Timer またはSwingUtilities.invokeLater()
. Swing Timer タスク内で invokeLater() を呼び出す必要はなくなると思います。
したがって、いくつかの Swing タイマーとコンポーネントを更新するいくつかのオブザーバーを用意します。オブザーバーはすべて呼び出しinvokeLater()
、Swing タイマーは私の任意のメソッドupdateComponents()
を直接呼び出します。
それでもデッドロックが発生する可能性がある場合、invokeLater()
デッドロックが発生しないことを確認できますか?
java - EDT について (Java)
EDT で何かを実行する必要がある場合とそうでない場合について、インターネットで多くの記事を読みました。しかし、私はまだ理解できていないので、これについていくつか質問したいと思います。
EDT内でデフォルトで実行されるコードは何ですか?
EDT の外部でデフォルトで実行されるコードは何ですか?
InvokeLater() をいつ使用して、デフォルトで EDT の外部で実行されるものを EDT の内部で実行する必要がありますか?
新しいスレッドを作成し、そのコードをその中に入れることによって、コードの一部が EDT 内で (デフォルトで) 実行されないようにする必要があるのはいつですか?
ありがとう
java - AWT スレッドの識別
Swing から JTextComponent を装飾するクラスがあります。含まれているメソッドはどのスレッドからでも呼び出すことができるため、JTextComponent で動作するコードが AWT スレッドによって実行されるようにする必要があります。
2 番目の要件は、AWT スレッドがタスクを処理するまで、メソッド全体を呼び出すスレッドが「待機」することです。
コードはうまく機能していますが、まだ 1 つの問題があります。私のクラスを使用したい人が AWT スレッドの名前を変更すると、デッドロックに陥ります。
AWT スレッドを明確に識別し、この問題を回避する方法はありますか?
ありがとうございました
java - Java Swing スレッド セーフティと EDT
JFrames は、invokeLater を使用してイベント ディスパッチ スレッド (EDT) で安全に作成する必要があることを理解しています。メイン メソッド内で JFrames を 2 つ作成しようとしています。
コード:
これで、メニューが作成されます (ここで必要な処理はごくわずかであるため、これは問題なく機能するようです)。この後、メニューが使用され、ボタンmenu.setVisible(false)
が呼び出されます。その後、EDT でメソッドをキューに入れます。Simulation は から派生したクラスJFrame
です。そのコンストラクタは次のとおりです。
addComponentsToPane()
メソッドがすべての必要なコンテンツを JFrame に追加する場所。このコンストラクターの後に呼び出される run() メソッドは単純です。
ただし、このコードを実行すると、メニュー ウィンドウしか表示されません。メニューを終了し、シミュレーション ウィンドウが表示されたときに、プログラムが終了したように見えます。
ここで私が間違っていることはありますか?
c# - 10 ミリ秒ごとに Type からメソッドを実行する方法
MonoBehaviour
Unity 3D エンジンを複製しようとしています。私は Linux で monodevelop を使用しており、ほとんどのテストは Windows で行われますUnity 3D engine editor
。
詳細については、ここMonoBehaviour.Update
で読むことができます
Update
10ミリ秒ごとに継承するすべてのタイプでメソッドを呼び出したいですMonoBehavior
。
これが私がスタートでやっている方法です
java - 私の Java スイング アプリケーション jcomponents はどちらも描画せず、計算が完了した後にのみ再描画しますか?
私は音声認識システムを持っています。これがlisten(button)
機能です
私の結果は次のようになります:ボタンアイコンは同じままで、作業が完了すると変更されます作業が文字列になっている間、システムは印刷されます"start speaking..."
recognizer.recognize()
関数:
追加しようとしました:
うまくいきませんでした。助けてください。計算中にボタンのアイコン画像を変更したいのですが...