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

iphone - バックグラウンド スレッドから戻った後にコードが機能しない

私は正常に動作し、テーブルビューにデータを適切に表示するテーブルビュー (ファイル名- five.m ) を持っています。ユーザーが行を選択すると、同じ画面に進行状況インジケーターを表示するサブビューが追加されます。サブビューを追加すると、HTML データを解析して SQLite3 データベースに追加するバックグラウンド スレッドが開始されます。バックグラウンド スレッド、SQLIte データ挿入、HTML 解析はすべて正常に動作しています。終了すると、removeProgressInd メソッドで five.m に戻り、進行状況インジケーターが削除され、新しいテーブル ビュー (ファイル名 - TitleOnly.m) に移動します。removeProgressInd メソッドからすべての NSLog メッセージを確認できるため、正常に返されます。しかし、コードは進行状況インジケーターを停止せず、新しいテーブルビューに移動しません。コードはエラーなしで実行されます。removeProgressInd の代わりに viewDidLoad と viewDidAppear で同じコードを実行しようとしましたが、NSLog メッセージしか表示されません。これが私のコードです。

Five.m - テーブルビュー

ParsingCalculation.m ファイル コード

Five.m - removeProgressInd メソッド

エラーなしでコンソールに「navigate to TitleOnly」メッセージが表示されます。これは、[progressInd stopAnimating] および [self.progressInd removeFromSuperview] コマンドがこの NSLog メッセージの直前にあるため、エラーなしで正常に実行されたことを意味します。ただし、進行状況インジケーターは画面から削除されません。同様に、TitleOnly テーブルビューも表示されません。''

どうすれば修正できますか?問題はどこだ?私は何を間違っていますか?

できる限り早くご回答ください。

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

java - Swing のロード中に JProgressBar を更新/ペイントして GUI を構築する方法

GUI が実行されているプラ​​ットフォームでビルド/初期化するのが非常に重い GUI があります。したがって、初期化中に進行状況を更新したいと考えています。

初期化中に特定の場所で更新したいJLabelとJProgressBarを含む装飾されていない小さなJDialogがありますが、イベントディスパッチスレッド(Swingルールに従って)がGUIの構築/初期化に使用されるため、進行状況はもちろんですEDT が再びアイドル状態になるまで (つまり、初期化が完了するまで) 更新されません。

「paintImmediately」を使用して再描画するようになった JProgressBar ですが、JLabel とダイアログ自体に対して適切に機能させることができないようです。これを達成するための簡単な推奨/実証済みの方法はありますか?

乾杯...

編集:私がやろうとしていることの例を追加します。もちろん、大幅に単純化されています。

progressBar.setValue()/上記の呼び出しによって発生しprogressLabel.setText()た再描画は、もちろん、EDT がビジーである限りキューに入れられ、途中で更新するのではなく、すべて完了した後に再描画が行われます..

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

asp.net - バックグラウンドスレッドからGridViewをバインドする

最終クエリをにバインドする前にいくつかのストアドプロシージャを呼び出すレポート関数を作成しました。この関数は、ページに結果を表示する前に、イベントGridViewでいくつかのプロセスを実行します。GridView_DataBound

全体的なプロセスは、完了するまでに最大1分かかる場合があります。

ユーザーが応答するまでこれだけ長く待たなければならないのではなく、このスクリプトをバックグラウンドスレッドで実行してから、AJAXを使用して何らかの方法でバインドする方法はありますか?

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

android - バックグラウンド スレッドでのカーソルの更新

このディスカッションで説明されている問題と同様の問題があります。基になるデータベースが変更されたときに ListView を更新する必要がありますが、クエリは高価であるため、AsyncTask で実行しています。

更新された Cursor の準備ができたら、次のようにします。(これは、起動時にリストが最初に入力される方法でもあります。)

これが私が得るエラーです。毎回発生するわけではなく、さらにイライラします。

したがって、明らかにカーソルを正しく閉じていません。currentCursor.close()発信カーソルが によって閉じられていることに依存する代わりに呼び出すとadapter.changeCursor()、カーソルを 2 回閉じるか、カーソルを閉じることに関する警告が表示されますnull

これを行う正しい方法は何ですか?

私がリンクしたディスカッションでは、Dianne Hackborn がLoader代わりに a を使用することを提案しています。私のコードは Android 2.1 で実行する必要があるため、これはオプションではありません。

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

c - UI+ワーカーマルチスレッドの問題

バックグラウンドで検索操作を実行し、リストボックス内のフォアグラウンドで結果をユーザーに表示するのに問題があります。

プログラムはSendMessage、クエリ結果をGUIに送り返すために使用します。

プログラムを閉じると、GUIはグローバル(揮発性)変数を「完了」としてマークMsgWaitForMultipleObjectsし、スレッドハンドルを待機してスレッドに参加します。

プログラムを中断すると、デッドロックが発生します。GUIはバックグラウンドスレッドの終了を待機していますが、バックグラウンドスレッドはで待機していSendMessageます。

MsgWaitForMultipleObjectsこのデッドロックは、100ミリ秒のタイムアウトを使用してループ内で呼び出した場合でも発生QS_ALLINPUTます。理由がわかりません。

このデザインは正しいですか?スレッドが終了するのを待つより良い方法はありますか?
そうでない場合、問題は何ですか?

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

iphone - iPhone のバックグラウンド スレッドでのモーダル アラート

私の iPhone アプリでは、メイン スレッドが多くの作業を行うバックグラウンド スレッドを作成し、場合によってはユーザーに決定を求める必要があります。ユーザーが質問をすると、バックグラウンド スレッドは動作を停止し、ユーザーが質問に回答した後にのみ続行する必要があります。

それを行う最良の方法は何ですか?

PS
iPhone Developer's Cookbook の ModalAlert を試してみましたが、うまくいくと言われていましたが、成功しませんでした。CFRunLoopRun (スレッドの実行を停止することになっている) は、バックグラウンド スレッドを停止しないようです。

私はそのようなコードを持っていました

スレッドNSLogの開始直後に実行されました。syncStart変。

0 投票する
7 に答える
2156 参照

c# - 一部の作業をバックグラウンド スレッドに移動する最も簡単な方法は何ですか?

このコードがあるとしましょう。

string result = TimeConsumingTask(value);バックグラウンドスレッドに移動したい。これをバックグラウンドスレッドに移動する最も簡単で効率的な方法は何ですか?

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

android - Android:マルチスレッドを使用してUIをレスポンシブにする(スムーズなスクロールをアーカイブする)

私の活動は、アナウンスをダウンロードして表示することです(アナウンスWebサービスから)。UIの応答性を維持するために、バックグラウンドスレッドで次のアクションを実行します。

1)XMLをアップロードします(データはXMLに保存されます)、

2)XMLを処理します。

3)画像をアップロードします。

さらに、UIスレッドの応答性を維持するために、UIスレッドとバックグラウンドスレッドの優先順位を変更します。

メインスレッド:

バックグラウンドスレッド:

各アナウンスはTableRowに配置され、各TableRowはハンドラーを使用してTableViewに配置されます。ユーザーがTableViewをスクロールし、テーブルの最後に到達しようとすると、新しい行が追加され、次のアナウンス用のHTTP-GETが送信されます(+パーシング(XPathを使用)+画像のアップロード+テーブルの行にコンテンツを入力)。

私の問題:

アップロードと解析が進行中の場合、ユーザーインターフェイスは部分的にしか応答しません(ユーザーがTableViewをスクロールすると、それぞれ0.1〜0.5秒の遅延が発生します)。

データのアップロード/処理に依存しない、絶対にスムーズなスクロールを作成したいと思います。

間違った方法で何が行われ、ここで他に何ができるでしょうか?たとえば、ハンドラーの操作の数を減らすと、応答性が向上するはずです...多分そのように。ただし、そこには重くてリソースを消費する指示はありません。


アップデート

TableLayoutの代わりにListViewを使用してコードを書き直しました。前者の方がかなり高速であるためです(結局のところ、私はそれを知りませんでした)。しかし、XML処理とListViewスクロールが同時に行われていると、まだスパイクがあります。私は2つの実験を行いました:

1)すべてのバックグラウンドプロセスを削除しました-下にスクロールすると新しい行がListViewに追加されましたが、それらの行のデータは処理されませんでした(したがって、空のままでした)-このようなバリアントはうまく機能し、スパイクはなく、UIは完全に応答しました。

2)2番目の実験は、ListView更新の呼び出しを削除することでした(XMLファイルは処理されましたが、見つかったデータはListViewアダプターに渡されませんでした)-そのときは急上昇しました。したがって、これらのスパイクはバックグラウンドスレッドによるものであり、UI更新呼び出しによるものではないと結論付けます。バックグラウンドスレッドの優先度をメインスレッドの優先度よりも低くした場合、どのようにしてアプリの速度を低下させることができますか?

スレッドの優先順位を設定する正しい方法は?

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

objective-c - iPhoneのFTP経由でバックグラウンドでファイルをアップロードする

アプリ内でFTP接続を確立しようとしています。FTPサーバーに複数のファイルをアップロードしたいのですが、すべてのファイルが1つのディレクトリにあります。だから最初に私はリモートディレクトリを作成したいと思います。

このコードは、次の呼び出しを使用してバックグラウンドスレッドで実行された場合は機能しません。

私の推測では、(background-threads)runloopが実行されていませんか?メインスレッド内でメッセージを送信すると、アップロードは正常に機能します。

メインスレッドのrunloopが稼働しているため。

ただし、かなり大きなファイルがアップロードされます。そのため、そのワークロードをバックグラウンドスレッドに配置したいと思います。しかし、アップロード全体がバックグラウンドスレッドで行われるように、NSRunLoopをどこでどのように設定すればよいですか?NSRunLoopsに関するAppleのドキュメント(特に、この場合のように、タイマー/入力ソースを使用せずにそれらを起動する方法)は私を助けませんでした。

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

android - AndroidのTwitterアプリはどのようにして「ほぼ」リアルタイムで更新できますか

私は最近、Android ベースの電話 (HTC HD Desire、I ゲスト) で Twitter アプリを試しました。Twitter アプリでは、メッセージを「ツイート」しようとすると、電話の Twitter アプリがほぼリアルタイムで変更を通知します。

私はいくつかの検索を行ったところ、JSON 形式で Twitter から「メッセージ」を取得できることがわかりましたが、Android フォンのアプリでは、サーバーから何らかの形式で情報を取得するために、バックグラウンドで別のスレッドを実行する必要があるのは事実です ( JSON ..) 電話で自分の壁を更新するよりも ??

これが本当に起こったら、すぐにバッテリーが切れるはずだったので、私の携帯電話にとっては大惨事になると思います.

とにかく同じ結果を得る方法はありますが、バックグラウンドでスレッドを実行してチェック更新作業を行う必要はありませんか?