問題タブ [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 に答える
329 参照

javascript - JavaScriptスレッドとSilverlightUIスレッドの関係は何ですか?

JavaScriptはシングルスレッドです-Silverlightはそうではありませんが、JavaScriptとSilverlight間の対話はSilverlightUIスレッドで実行する必要があります。

ただし、Silverlight UIスレッドとJavaScriptスレッドの関係は正確にはどのようなものですか?それらは、定義上、同じスレッドですか、それとも、相互作用がそれぞれのイベントループを介して純粋に実行され、他のスレッドを待機しているときに一方のスレッドをブロックしている(たとえば、SilverlightからJavaScriptを評価/呼び出す場合)別々のスレッドですか?言い換えると、JavaScriptはUIスレッドでSilverlightアクションと同時に実行できますか(同じページでホストされている複数のSilverlightインスタンスでUIスレッドを同時に実行できますか)?

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

silverlight - Silverlight で UI スレッドのロックを防ぐ方法

ビュー内に、ビューモデル内のメソッドを呼び出すボタンがあります

検索.xaml

ビュー内に IsBusy Indicator もあります

(私はこのプロジェクトで SimpleMVVM ツールキットを使用しています)

ビュー モデル内で、IsBusyIndi​​cator などのプロパティだけでなく、メソッドも宣言しています。

searchviewmodel.xaml

次に、モデル内で、WCF サービスへの非同期呼び出しを行います

検索コントロールは、dataTempalte セレクター クラスが適用されたリストボックス コントロールを介して結果を読み込みます。

私が見ている問題は、この呼び出しが UI から呼び出されているため、コレクションのデータテンプレートが選択され、結果が返されるまで UI スレッドがロックされていることです。この時点まで、IsBusy インジケータは起動さえしていません。

私の質問は、UI スレッドがロックされないように、これらの呼び出しをどのように行うべきかについて、誰かが私に指示できるかどうかです。UI スレッドが IsBusy インジケーターなどを呼び出すことができるように、何らかのバックグラウンド スレッドなどを呼び出して呼び出す必要があります。

詳細や追加のサンプルが必要な場合はお知らせください。

前もって感謝します

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

objective-c - UIスレッドでボタンを点滅させるには?

ボタンが押されると、UI に 800ms ごとに点滅させたい (オンにしてからオフにする) ボタンがあります。私は次のコードでそれを行います:

...これは非常にうまく機能しますが、例外: UI にも UIScrollView があり、ユーザーが指を下に置いてスクロールしている間、ボタンがフリーズします。その理由は完全に理解できますが、どうすればよいかわかりません。

performSelector:withObject:afterDelayメッセージは、メインスレッドである現在のスレッドでメッセージが送信されるようにスケジュールします。したがって、他のすべての UI アクティビティが終了するまでメッセージを処理できません。正しい?しかし、他のスレッドではボタンを選択/選択解除できないため、UI スレッドでこれを行う必要がありますよね? それで、ここでの解決策は何ですか?

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

android - ビューからのUIスレッドでの実行

それ自体にいくつかのビューを含むカスタムビューがあります。このコンテナビュー内のビューの1つがクリックされると、これもコンテナビュー内のTextViewを毎秒更新する必要がある「タイマー」スレッドを実行するように作成しました。TextViewを毎秒更新したいときに問題が発生します。どうやら、思ったほど簡単ではなかったようです。このようにコンテナビュー内にRunnableを実装し、ボタンがクリックされてタイマーを開始したときにスレッドを実行しました。

典型的なcannot-touch-views-outside-hierarchy例外が発生します。これは、基本的にUIスレッドで実行されていないことを意味します。post(Runnable)スレッドの最後まで1秒間更新するのを待ちたくないので、ここでは使用しません。また、アクティビティ全体をそれ自体に渡して実行することも実用的ではありませんrunOnUiThread(Runnable)。それで、誰かが私がこれをどうやってやるのか教えてもらえますか?誰かが説明が必要な場合は、私に知らせてください!

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

android - しばらくするとテキストビューを変更する簡単なスレッドを作成しようとしています

問題は、ボタンを2回クリックするとアプリケーションがクラッシュし、その理由がわからないことです。2回目のボタンのクリックは、もう一度同じだと思います。

どんな助けでも大歓迎です。

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

android - ImageViewのリソースを変更するときに強制的に閉じる

アイテムをクリックしたときにimageviewのリソースを変更する際に問題が発生しました。グラフィカルな更新はUIスレッドで実行する必要があることを知っており、2つの方法を試しましたが成功しませんでした。

...ハンドラーのない私のコード:

...ハンドラーと実行可能のある私のコード:

}

onClickレイアウトXMLで「クリック」に設定し、クリック可能なすべての画像に一意のIDを指定しました。Log.d()をコードのほぼすべての場所に配置すると、iv.setImageResource(R.drawable.avatar_0);コマンドで停止することに気付きます。

誰かがここで私を助けてくれますか?私は何が欠けていますか?ありがとう

LOGCATの追加情報は次のとおりです。

オレンジ/赤の最初の行は次の3つです。

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

silverlight - Silverlight の odata は UI スレッドでのみ実行されます

DataServiceCollection を使用してデータを取得し、Silverlight で OData を操作しています。

データをフェッチするためのすべての呼び出し (LoadAsync() LoadNextPartialSetAsync()) は、ワーカー スレッドで行われます。ただし、「LoadCompleted」コールバック、逆シリアル化、およびオブジェクトの実体化は UI スレッドで行われます。

DataServiceCollection がある System.Data.Services.Client.DLL を逆コンパイルしたところ、OData の応答を処理するすべてのコードが UI スレッドにディスパッチされていることがわかりました。

代わりに、逆シリアル化をワーカー スレッドで呼び出す方法はありますか?

ありがとうヤロン

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

wpf - ペイント中に UI を更新するとアプリがフリーズする

これは投機的な質問なので、コードは提供されていません。

大きな XML ファイルを受け取り、ユーザーが編集するためにこれからビューを作成するアプリケーションがあります。XML の読み込みはバックグラウンド ワーカーで実行され、ツリー ビューを介して非常にバニラな MVVM の方法でビューにバインドされます。

これはすべて非常にうまく機能し、ワーカーが XML をロードしている間、適切な待機カーソルが表示されます。

ただし、XML ファイルが非常に大きくなると (20M)、新しいビューの描画中に UI がハングします。これは予想されることですが、アプリがまだ生きているというすべての視覚的な手がかりを意味し、同様にフリーズします. 現時点では、ペイント直前のワーカーでロードが完了すると、カーソルが変更されます。この UI アクションの後に待機中のカーソルを変更できるように、ハンドルとして使用できるコントロールまたは気の利いたトリックの「paintingHasFinished」タイプのイベントはありますか?

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

android - TimerTask条件の後にAndroidがビューを切り替える

X時間後にユーザーをアクティビティから追い出すためのいくつかの条件を構築したいと思います.

私は一般的な考えを得る:

  • ミリ秒単位のカレンダー オブジェクトから現在の時刻をミリ秒単位で保存します
  • ユーザーがアクティビティに参加する時間を決定する
  • どのくらいの時間 + 保存された現在の時刻を追加して、そのアクティビティを閉じるために起動するミリ秒単位のカレンダー時間を決定します
  • キックアウト時間をミリ秒単位で現在の時間と比較します

最後のステップで、私が見つけることができる最高の「時間リスナー」は、次のように実装された TimerTask であることがわかりました。

これは AsyncTask の最後の部分であり、カウントと「時間リッスン」は実際に機能しますが、run()メソッド内のビューを置き換えると、アプリがクラッシュします

"Only the original thread that created a view hierarchy can touch its views."

概念は理解していますが、関数内のカウントの解決時にこのアクティビティから抜け出す方法が他にわかりませんschedule。また、更新を行う必要があるため、このアクティビティに「finish()」を使用するだけでなく、ビューを「置き換える」必要があります。

別の単純な AsyncTask を使用したいのですが、schedule関数には TimerTask が必要です

洞察力に感謝

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

android - Android - UI スレッドの外で View.GONE を設定するにはどうすればよいですか?

ユーザーがボタンを押すと、ビューが消えます (消えます)。

次のようにして、 onCreate()メソッド (メイン UI スレッド)内で作成できます。

ただし、別のスレッド内 (メイン UI スレッド外) で同じことを実行できるようにしたいと考えています。上記を自分のスレッドにライブで入れようとしましたが、うまくいきませんでした。

前もって感謝します!

## 編集 ####

より明確にするために、次のようなことをしたいと思います。

}

ただし、それは機能しません。どうすればこれを修正できますか?