問題タブ [backgroundworker]

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 に答える
1346 参照

c# - バックグラウンドワーカー: キャンセル中の例外

キャンセルできるバックグラウンド ワーカーがあります。

CancelPending 変数が true になると (worker.CancelAsynch() を呼び出す UI でのユーザー操作に応答して)、通常のフローはそれ自体を中断します。その場合、例外がスローされます (通常のフローが中断されるため、多くの null 参照例外がスローされます)

そのため、ワーカーが戻ったときに、ワーカーがキャンセルされたときにスローされた例外 (黙って無視するため) と、ワーカーがキャンセルされなかったときにスローされた例外 (UI に報告するため) を区別できるようにしたいと考えています。

私のコードは次のとおりです(c#/vbの混合で申し訳ありません...):

ワーカークラス:

コールバック:

次に、worker.CancelAsynch() を実行しているときに、Completed コールバックで e.Cancelled が false に設定されます (これは私が期待したものではありません)。ワーカーで「Trow exc」をコメントアウトし、再度テストすると、e.Cancelled が正しく true に設定されます。

必要な情報を取得する最もクリーンな方法は何ですか?つまり、worker が cancelPending 状態にあったときに、完了したハンドラーでポップアウトする例外がスローされたかどうかを知りたいですか?

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

c# - スケジューラの種類

何かを実装する必要があります。私のプログラムで特定のタスクを実行できる何か。たとえば、10 秒ごとにファイルのログに何かを書き込みます。もちろん、バックグラウンド スレッドで実行することを想定しています。

どこを掘ればいいですか?私はマルチスレッドにあまり慣れていません。BackgroundWorker クラスについて聞いたことがありますが、ここで適切かどうかはわかりません..

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

c# - このコードをスレッドセーフにするのを手伝ってください

データの読み込みとフィルタリングをスレッドセーフにするのに少し問題があります。

BackgroundWorker を介してすべてのデータ生成を処理する、コントロールの基本クラスの次のコード。これにより、"this.DataWorker.RunWorkerAsync()" でエラーが発生し、BackgroundWorker がビジー状態であることがわかります。

コードは2 つの可能な場所で呼び出されます。まず、コントロールがオンになっているフォームのタイマーによって:

次に、ユーザーが多数のドロップダウン リストからフィルター オプションを選択すると、次のようになります。

メイン フォームの Timer は 60 秒ごとに実行され、Populate メソッドに true を渡します。reload を true として渡すと、WebService から新しいデータ セットを取得する必要があることが BackgroundWorker に通知されます。

私の知る限り、タイマーが人口イベントを発生させるのとまったく同時にフィルターオプションをクリックすると、エラーが発生します。Populate メソッド、つまりロックに欠けているものがあると思いますが、このインスタンスで正しく使用する方法がわかりません。

コードはユーザー入力に優先されます。ユーザーがフィルター オプションを選択すると、自動更新がブロックされます。自動更新が起動すると、フィルター オプションは一時的に無効になります。それらが同時に発生した場合、ユーザー入力が優先されます (可能な場合)。

誰かが助けてくれることを願っています!

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

python - web.pyをデーモンとして実行します

データをロードするための簡単なweb.pyプログラムがあります。サーバーに、ApacheやWebサーバーをインストールしたくありません。

http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/でバックグラウンドサービスとして配置しようとしています

そしてサブクラス化:( http://www.jejik.com/files/examples/daemon.pyから)

ただし、web.pyソフトウェアがロードされません(例:サービスがリッスンされません)

直接呼び出すと(つまり、デーモンコードを使用しない)、正常に機能します。

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

c# - 選択に基づいてツールストリップを再描画します

ユーザーがチェックボックスリストからオプションを選択し、選択したアイテムでツールストリップを自動的に再描画/再描画できるようにするc#winformsアプリを作成するように依頼されました。

私はwinformsに慣れていないので、どのようにアプローチするかわかりません。BackgroundWorkerプロセスを使用する必要がありますか?Invalidate()?

少し混乱しています。

正しい方向を指すのを助けていただければ幸いです。

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

.net - WPF BackgroundWorker ListView フィルターの問題

BackgroundWorker 内でフィルタリングしようとしている WPF ListView があります。私のコードを以下に示します。

このコードはフィルタリングを通過しますが、「別のスレッドが所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」というエラーで失敗します。次の行で:

ここで何が問題になるでしょうか?BackgroundWorker でフィルタリングしたサンプルが見つからないようです。

更新: BackgroundWorker を使用して WPF ListView をフィルター処理するサンプルを知っている人はいますか?

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

ruby-on-rails - Railsでワーカープロセスを整理する最良の方法は何ですか?

スケジュールに従って、またはいくつかのパラメーターを使用してバックグラウンド プロセスとして実行する必要があるコードがよくあります。共通の要素は、それらがディスパッチ プロセスの外で実行されることですが、Rails 環境 (および場合によっては渡されたパラメーター) へのアクセスが必要です。

これを整理する良い方法とその理由は何ですか? 特定のプラグインや gem を使用したい場合は、なぜ便利だと思うのかを説明してください。使用しているプラ​​グインだけを挙げてはいけません。

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

c# - データのフェッチ中に GUI が応答しない

私のアプリケーションは WebRequest を使用して Web ページからデータをフェッチすることがよくありますが、フェッチ中にボタンなどをクリックすることはできません。スレッド/バックグラウンドワーカーを使用する必要があることは理解しましたが、正しく機能させることができません。GUI の応答性が向上するわけではありません。

アプリケーションが応答しなくなるのを防ぐために、ある種のスレッド化を適用したいコード:


編集:ありがとう、lc、私はそれにかなり似たものを試しました。しかし、そのようにバックグラウンドワーカーを使用することに関する私の問題は次のとおりです。(私の場合は SQLGet、あなたの場合は) StartQuery を呼び出した関数に queryResult を戻すにはどうすればよいですか?

私の例では、返された文字列は、文字列が内部で呼び出される void のローカル変数として使用されます。

また、同時に多くのクエリが存在する可能性があるため、グローバル変数に割り当てるリスクを冒したくありません。

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

winforms - 「重い」データを処理するときの WinForms UI の応答性

UI の応答性を維持しながら、データをバックグラウンドでロードできるように Windows フォームを変更しています。データの取得とバインドの両方にかなりの時間がかかります。両方をバックグラウンドで実行するのが理想的ですが、バックグラウンド (メイン スレッドの外側など) で実行する必要がある UI の更新の種類についてはあいまいな点があります。バックグラウンドでのデータ取得とデータ バインディングを示す確かな例は、非常に役立ちます。

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

c# - リフレクションを介して BackgroundWorker RunWorkerCompleted イベントを追加する方法は?

通常、私は行きます:

ReportManager クラスは、使用するイベント ハンドラーを含む静的クラスです。

BackgroundWorker を作成したので、ReportManager で定義されているように RunWorkerCompleted イベントをアタッチします。ただし、ReportManager は参照できません。そうしないと、循環参照が発生するため、リフレクションが必要になります。

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

私は以下を見てきましたが、あまり遠くには行きませんでした: