問題タブ [ui-thread]

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 投票する
5 に答える
5092 参照

c# - Java/J2ME での UI スレッドとの対話

J2ME アプリケーションを作成しています。そのうちの 1 つは、ディレクトリの内容を定期的にポーリングし、新しいものがあれば画面に表示するものです。これは、UI フォームがそれ自体へのポインターを使用してポーリング スレッドを起動し、ポーリング スレッドが何かを見つけたときにフォームにコールバックし、同期されたメソッドを呼び出して表示を更新することで実現しました。これはうまくいくようです。

私が持っている質問はこれです。C#/.NET では、非 UI スレッドで UI を更新するのは良くないことを知っています。これを処理する正しい方法は、UI スレッドに委譲することです。

たとえば、次のとおりです。

このプロセスを管理する方法に相当する J2ME はありますか? Javaはどうですか?それとも、Java/J2ME のほうがこれに関してうまくいくのでしょうか? そうでない場合、これはどのように行われますか?

[編集] Swing は、SwingUtilities.invokeLater() および invokeAndWait() メソッドを介して私が求めていることをサポートしているようです。J2ME に相当するフレームワークはありますか?

0 投票する
5 に答える
6320 参照

winforms - コントロール オブジェクトが存在しない UI スレッドでコードを実行する

現在、コンポーネントの一部を UI スレッドで実行するコンポーネントを作成しようとしています (説明が長すぎます)。したがって、最も簡単な方法は、コントロールをそれに渡し、InvokeRequired/Invoke を使用することです。しかし、コントロール参照を「データ/背景」コンポーネントに渡すのは良い設計だとは思わないので、コントロールを使用可能にする必要なしに UI スレッドでコードを実行する方法を探しています。 . WPF の Application.Dispatcher.Invoke のようなもの...

任意のアイデア、thx マーティン

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

java - 複数の Swing イベントディスパッチ スレッド

Swing で新しいイベント ディスパッチ スレッドを作成したいと考えています。これを行う方法についてオンラインで参考文献を見つけるのに苦労しています。新しいスレッドを作成し、Application.run(...) を呼び出すことで、.NET でこれを行いました。誰かがこれをしましたか?Swingで可能ですか?

参考までに、私がこれをやろうとしている理由は、Eclipse プラグインを作成していて、IDE に対してモーダルではなく、UI ロジックに対してモーダル (ブロック) であるダイアログをポップアップしたいからです。非モーダル ダイアログとコールバックを使用してこれを実現できますが、それにはコードをマルチスレッド化するオーバーヘッドが必要です。前者が不可能な場合は、それに戻ります。

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

c# - メソッドが UI スレッドで実行されるかどうか、分離された方法で確認するにはどうすればよいですか?

私が抱えている問題は次のとおりです。オブジェクトが UI スレッドでインスタンス化されていることを確認する必要があります。そうでない場合は、例外をスローする必要があります。しかし、UI スレッドで実行されているかどうかをメソッド内で確認するにはどうすればよいでしょうか? 注: オブジェクトのコンストラクターに情報を渡したくありません。

完璧な候補は、関連付けられているスレッドを参照する Dispatcher への参照を内部的に保持する DispatcherSynchronizationContext (SynchronizationContext の WPF 実装) ですが、残念ながらそのフィールドはプライベートであるため、アクセスする方法はありません。

0 投票する
6 に答える
18405 参照

c# - UIスレッドを使用しているかどうかを検出するにはどうすればよいですか?

議論のために、UIスレッドを、呼び出しApplication.Run()またはそのオーバーロードの1つが呼び出され、アクティブなメッセージループが実行されているスレッドと見なします。

そのようなスレッドで現在実行されているかどうかを検出する方法はありますか?

これが必要な理由は、実行時間の長いプライベート関数を持つクラスがあるためです。クラス自体はすでにマルチスレッド化されており、このクラスの使用法は、UIまたは処理を実行するバックグラウンドスレッドのいずれかから使用される可能性があるようなものです。この機能もこのネットに分類されます。しかし、UIスレッドをブロックしたくありません。したがって、UIスレッドで実行しているかどうかを検出し、実行している場合は、関数呼び出しをバックグラウンドスレッドにフォークします(おそらくThreadPool、これはこの説明では問題になりません)。これは完全に正常に動作しますが、バックグラウンドスレッドはおそらく関数の出力に依存しているため、それらをブロックする方が適切ですが、UIスレッドはより「設定して忘れる」方法でアクセスします。

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

watin - UIスレッドでquartz.netジョブを実行することは可能ですか?

私はブラウザのテストにWatinを使用していますが、これはUIスレッドで実行する必要があります。

Quartz.NETを使用してジョブをスケジュールしたいのですが、UIスレッドで実行する方法がわかりません(WPFアプリケーションを使用)

何か案は?

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

winforms - 別のクラスからの進捗状況の変更をBackgroundWorkerに通知する

BackgroundWorkerまたはThreadを使用して、ビジネスレイヤーにあるクラスのWindowsフォームからメソッドを呼び出したいと思います。このビジネスレイヤーのメソッドは、完了するまでに時間がかかる場合があるため、誰かが聞いている場合にその進行状況を報告できるようにしたいと思います。私はBackgroundWorkerから始めて、後で通常のスレッドを使用することにしたので、どちらにも縛られたくありません。

バックグラウンドワーカーによって呼び出されたかどうかを知らない場合、メソッドが進行状況を報告するための最良の方法は何でしょうか。私は自分のビジネスレイヤークラスで、誰かが聞いている場合にその進捗状況を公開できるイベントを提供することを考えていました。

そのためのフレームワークにすでに代理人がいますか?より良い、しかし私が実装できるインターフェース-INotifyProgressChangedのようなもの?

0 投票する
4 に答える
10518 参照

c# - 非同期コールバック メソッドから UI スレッドとやり取りしていますか?

System.Net.Sockets.NetworkStream.BeginReadの完了時に非同期的に呼び出されるメソッドがあります。

そのコールバック メソッドでは、UI スレッドと対話する必要があります。

これにより、メソッドの完了後に例外が発生します。(End Sub実行時)

元に戻す操作で、対応するセット操作で適用されたものとは異なるコンテキストが検出されました。考えられる原因は、コンテキストがスレッドで設定され、元に戻されていない (元に戻されていない) ことです。

では、コールバック メソッドから UI スレッドを操作するにはどうすればよいでしょうか。私は何を間違っていますか?

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

c# - UIThread で Prism イベント アグリゲータ サブスクリプションをテストするにはどうすればよいですか?

PRISM イベント アグリゲーターを介してイベントをサブスクライブするクラスがあります。

hereに記載されているように、イベント アグリゲーターをモックするのはやや難しいため、実際のイベント アグリゲーターをインスタンス化して、テスト対象のシステムに渡します。

私のテストでは、そのアグリゲーターを介してイベントを公開し、テスト対象のシステムがそれにどのように反応するかを確認します。イベントは本番中に FileSystemWatcher によって発生するため、UIThread をサブスクライブして自動ディスパッチを利用したいので、イベントが発生したら UI を更新できます。

問題は、テスト中に、UIThread をサブスクライブしない限り、テスト中のシステムでイベントが認識されないことです。

TDD.Net 経由で VS2008 内から実行するテストに MSpec を使用しています。テストクラスに追加[RequiresSta]しても役に立たなかった

私のテスト中に ThreadOption を変更することから私を救う解決策はありますか(たとえば、プロパティを介して - なんて醜いハック)???

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

java - Guice は UI スレッドの問題以外で Swing コンポーネントを作成しますか?

IOC コンテナーとして Google Guice を使用して Java Swing アプリケーションに取り組んでいます。物事はかなりうまくいっています。いくつかの UI の問題があります。標準の L&F が Pushing pixel に置き換えられると、UI スレッド外で Guice の Swing コンポーネントが作成されるため、Substance L&F アプリケーションが実行されません。

GUI スレッドで Swing コンポーネントを作成するように Guice に指示する方法はありますか?

作成後に Swing コンポーネントを返すカスタム プロバイダを作成する必要があるかもしれませんSwingUtilities.invokeAndWait(Runnable)

アプリケーション全体を UI スレッドで実行するという考えは好きではありませんが、おそらくそれは完璧な解決策です。