問題タブ [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 投票する
1 に答える
925 参照

winapi - IsGUIThread -- 何をしますか?

私はIsGUIThread実際に何をするのか理解できませんでした... ReactOS のソース コードも調べましたが、理解できません。

なぜあなたはそれを呼ぶことができるのでしょうか?

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

wpf - Silverlight UI スレッドのフリーズ

大量のデータを表示しようとしているグリッド コントロールがあるため、UI スレッドでのレンダリングに時間がかかります。

画面がビジー状態かどうか (レンダリング中) に応じてアニメーション表示するローディング バーを追加しました。

ただし、グリッドがレンダリングしようとすると、読み込みバーがフリーズします。これは、UI スレッドが 1 つしかなく、そのスレッドがビジーであるためだと思います。

ローディングバーのアニメーションを維持できる方法を知っている人はいますか?

どうもありがとう、

マット

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

android - Android、秒カウンターを更新する簡単なスレッドを作成する

基本的に、秒カウンターとレベルカウンターを実行しようとしています。10秒ごとに++レベルにしたい。
しかし、それはまだ実装されていません。これまでのところ、表示する秒数を取得しようとしていますが、ランタイム例外とクラッシュが発生しています。
グーグルでは、スレッドから UI を更新しようとしていて、それが許可されていないことが原因であることがわかりました。したがって、asyncTask が必要になると思いますが、単純な小さなプログラムでそれを行う方法がわかりません。助けてください、またはいくつかの代替案を教えてください...

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

android - ProgressDialog not shown in UIThread

I'm creating a map using the google api lib. Because the mapwidget takes a long time to load I'm trying to add a loading notification, but it isn't shown. I can show the progressDialog in regular threads though. How come this dialog isn't shown?

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

android - タイプ Activity のメソッド runOnUiThread(Runnable) は引数に適用できません (void)

onUtteranceCompleted() で非 UI スレッドからダイアログを作成しようとしています。

Prompt() は、クラス MyDialog の単純な静的メソッドです。

問題は、私がやろうとしていることに対して2つのエラーが発生することです:

  1. タイプ Activity のメソッド runOnUiThread(Runnable) は引数に適用できません (void)
  2. タイプ MyDialog のメソッド Prompt(Activity) は引数に適用できません (new Runnable(){})

私が望んでいたのは、ダイアログの作成を UI スレッドに延期することによって「正しく行う」ことだけでしたが、根本的な何かが欠けているようです。

何が欠けているのか、達成しようとしている一見単純なタスクをどのように達成するのですか?

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

android - AndroidサービスをUIスレッドで実行する必要があるのはなぜですか?

おそらく簡単な質問があります。私はAndroidサービスを持っています。ここで、ロックを要求し、別のスレッドで実際の(拡張)サービスコードを実行する汎用サービスクラスを作成しました。以下の例:

上記の例では、Looper.prepare()とLooper.loop()が呼び出されたスレッドで呼び出されなくても、すべてが正常に機能します。

ただし、GPSまたはネットワークを介して位置情報を取得しようとすると、次に問題が発生し、「Looper.prepare()を呼び出さなかったスレッド内にハンドラーを作成できません」というコードが実行されません。

UIスレッドと通信するためにルーパーとハンドラーを作成する必要があることを理解しています。UIに影響するイベントの場合。ただし、場所の取得はUIに影響しますか?これは、ロケーションプロバイダーが電話のトップバーにもGPSアイコンを描画しようとし、UIスレッドで実行されていないためです。それはできませんか?

ここでの問題は何ですか。looper.prepare()とLooper.loop()を呼び出すことで、この問題を修正できます。しかし、私は次のことを理解する必要がありますか?

  • UIスレッドと同じメインスレッドでサービスが実行されることは知っています。つまり、サービスにはUIを変更する機能がありますが、ユーザーエクスペリエンスが良くないため、変更を加えていません。そのため、通知を通じてすべてを伝達するのでしょうか。(通知もUIスレッドで実行する必要がありますか?)
  • ロケーションプロバイダーをUIスレッドで実行する必要があるのはなぜですか?
  • ここではハンドラーを宣言していません。looper.prepare();を呼び出しているだけです。では、メッセージキューはバックグラウンドでどのように機能し、Androidコードでは以下で何が起こるのでしょうか。

これらの質問へのポインタと回答は本当に役に立ちます。よろしくお願いします。

乾杯

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

android - Android ボタンの反応の問題

こんにちは、私はボタンを使用しており、そのボタンをクリックすると Web サービスに接続します。しかし、問題は、ボタンを押しても、クリックされたことが示されず、インターネットとWebサービスに接続されることです。接続すると、クリックされたという応答が表示されます。要するに、ボタンの反応が非常に遅いです。そのボタンのリスナーにインターネット接続がある場合。UIスレッドと関係があることは知っています。しかし、友人がこれを案内してください。

本当にありがとう、

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

android - ゲームを終了する際の問題 (UI スレッドで新しいアクティビティを開くことができません)

プログラムを結び付けるのに問題があります (終了してしまいます)。アクティビティに SurfaceView があり、その SurfaceView で 3 人の命を失うと、ゲームは終了するはずです。新しいアクティビティを開こうとしましたが、keyDispatchingTimedOut エラーが発生します。私はそれが私のUIThreadに関係していることを知っています。アクティビティでハンドラーを作成してから、サーフェスビューにアクセスするように言われました。次に、ハンドラーにメッセージを送信して、メインの UI スレッドで UI を更新 (または新しいアクティビティを起動) できます。しかし...私はこれを行う方法がわかりません! どのアクティビティでハンドラーを作成しますか? 新しいアクティビティを起動したいものは? ここで本当に迷ってしまいました。これが、プログラムをまとまりのあるものにするために必要な最後のピースです。他に何もないとしても、どうすればアクティビティを閉じることができますか? 私のUIスレッドは多くの問題を引き起こしています:(

表面図

}

スレッド

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

c# - C# で非同期ソケット読み取りを優先する必要がある

私のアプリケーションは、非同期 HttpWebRequest リクエストを使用して多数のビデオ フレームをプリフェッチします。したがって、100 フレームがある場合、プリフェッチャーは 100 フレームすべてを一度に非同期で要求し、受信時に処理します。つまり、一度に 100 の非同期呼び出しを行います。これにより、ネットワーク カードが飽和する可能性がありますが、問題ありません。ネットワーク帯域幅を最大化したい。

ただし、このプリフェッチが行われている間、ユーザーはフレームの 1 つを表示したい場合があります。フレーム 56 を表示したいとします。問題は、フレーム 1 ~ 100 が既に要求されており、パイプ内にあるため、フレーム 56 の要求が応答を取得するのに時間がかかる場合があることです。

非同期リクエストが作成された後に、それらの優先度を再設定する方法があればいいのですが。そして、ユーザー要求をキューの先頭にプッシュします。

これができない場合は、フレームをバッチでリクエストする必要があると思います。これにより、バッチ間でユーザーリクエストを滑り込ませ、タイムアウトを回避できます。

これを適切に設計する方法についてのアイデアは非常に高く評価されます。

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

android - 他のスレッドからの UI の処理

を拡張するクラスがありRunnableます。このクラスは、重い操作 (基本的にネットワークからイメージをダウンロードする) を別のスレッドで実行します。ImageViewこのクラスからUIを更新(ダウンロードした画像をに表示)したいです。ハンドラーを使用しようとしましたが、成功しませんでした。これが私のコードです:

主な活動中

UIを更新する正しい方法ですか?