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

c# - C#/Winform: HTML ページにデータを入力し、フォームを送信する

BackgroundWorker を持つ Winform があります。BackgroundWorker は、とりわけ、ページに対して HTTP 呼び出しを行い、データを入力し、フォームを送信し、送信ボタンを「クリック」した後に返される HTML を取得する必要があります。これを行っている間、私は多くの障害に遭遇しました:

  1. ターゲット Web サーバーがそのメソッドを 405 サポートしていないため、データを POST できません。
  2. Web サーバーが POST をサポートしていないため、WebClient.UploadValues も使用できません。
  3. BackgroundWorkers が COM 相互運用性を損ない、STA スレッド (シングルスレッド アパートメント) にある必要があるという例外がスローされるため、WebBrowser コントロールを使用できません。
  4. BW は続行する前に座って結果を待つ必要があるため、別の個別のスレッドを実行できません (実行できないか、少なくともクラッシュしない方法を知りません)。
  5. スレッドは BackgroundWorker であるため、スレッドの ApartmentState を変更できず、STA モードに移行するように指示された場合にスローされます

これを解決するにはどうすればよいですか?

[編集]: アプリのエントリポイントは、[STAThread] 属性で既にタグ付けされています。

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

c# - C#バックグラウンドワークスレッドでリストボックスに値を追加できますか?

バックグラウンド ワーカーにリスト ボックスに項目を追加してもらいたいのですが、デバッグ時にそうしているように見えますが、リスト ボックスに値が表示されません。これは、バックグラウンド ワーカー スレッド内でアイテムを追加することと関係があると思われます。これらを配列に追加し、実行中に配列からリスト ボックスにデータを入力する必要がありますbackgroundWorker1_RunWorkerCompletedか?

助けてくれてありがとう。

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

c# - BackgroundWorker での同期作業

私のアプリケーションは、時間のかかる作業をいくつかのファイルに対して個別に実行します。各ファイルに作業を渡すための BackgroundWorker を作成しましたが、backgroundworker は非同期作業しか実行できないようです。それと調和していくつかの非同期タスクを実行することは可能ですか、または同期操作を実行するための同様のオブジェクトがありますか?

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

vb.net - BackgroundWorker でマーキー ProgressBar が応答しない

私のコードでは、ボタンをクリックすると進行状況バーがマーキーに設定され、BackgroundWorker が呼び出されますが、BackgroundWorker が呼び出されると進行状況バーがフリーズまたは非表示になります。BackgroundWorker を使用して、ReportViewer の RefreshReport メソッドを UI スレッドから分離します。どんな助けでも大歓迎です。ありがとう!

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

vb.net - メインUIウィンドウがコントロールを更新しない-クロススレッド操作が無効

OK..ここに問題があります

いくつかのボタンアイテムを追加できるコントロールコンテナを含むメインUIフォームがあります。また、listnerを起動するbackgroundworkerオブジェクトもあります。リスターイベントが発生したら、メインUIフォームのそのコントロールコンテナーにボタンを作成したいと思います。そのコンテナに新しいコントロールアイテムを追加しようとするまで、すべてが正常に機能しているようです。次の例外が発生します

「クロススレッド操作が無効です:コントロール'RadMagnifier_AcceptReject'は、作成されたスレッド以外のスレッドからアクセスされました。」

コードは次のように流れます

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

ruby-on-rails - Rails で特定の時間に何かを発生させる

ブラウザゲームのように。ユーザーが建物を建設し、タイマーが特定の日時に設定されて、建設が完了し、建物が生成されます。

デーモンのようなものを想像しましたが、それはどのように機能しますか? 私には、回転+ポーリングは進むべき道ではないようです。私はasync_observerを見ましたが、それはこのようなものに適していますか?

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

.net - .NET Backgroundworker オブジェクトのスレッド優先度

開発中のアプリケーションで .NET Backgroundworker オブジェクトを使用しようとしています。

インターネット上のすべての資料は、このオブジェクトが「バックグラウンド」で実行されると述べていますが、このバックグラウンド スレッドが実際に「低優先度」モードで実行されていることを確認できた場所はありません。この疑問が生じるのは、Windows (私が推測する) では、バックグラウンド タスクが「通常」または「通常以下」または「低」の優先度モードで実行される可能性があるためです。

私のアプリケーションでは、DoWork 関数内で自分で優先順位を設定しようとしました...

...

しかし、これは効果がないようです。バックグラウンドワーカーはこの呼び出しを無視しますか?

もう少し説明したいと思います:

私のアプリケーションは、チャンバーから温度、湿度などのリアルタイム データを収集し、使用して Web ページ (Web サービスではない) にアップロードするインターネット クライアントです。

system.net.webclient.UploadValuesAsync(...)通話

クライアント GUI がチャンバーからデータを収集し、タイムスタンプを付けて、アップロードのためにキューに入れるように、アプリケーションを作成しました。

...

バックグラウンドワーカーの Dowork 関数は、デキューしてからアップロードします...

…………

...............

プログラムを実行すると、UploadValuesAsync が呼び出されて出力されるたびに、デバッグ ウィンドウが停止することがわかりました。また、デバッグ ステートメントを追加して、キューにある読み取り値の数をいつでも確認できるようにしました。このタスクが本当に低い優先度で実行されている場合、データが取得されるとキューの数が急速に増加し、フォアグラウンドがアイドル状態でデータが取得されていないときにのみ減少することが予想されました。しかし、そうではありません。読み取り値がキューに追加されるとすぐに、キューから取り出されてアップロードされます。したがって、キュー カウントは常に 1 または 0 です。

私のアプローチに何か問題がありますか?background-worker オブジェクトをまったく使用しないでください。

ところで、これは Windows XP を実行しているデュアルコア ラップトップです。

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

wpf - WPF: BackgroundWorker でエラーを処理する方法

Windowsクライアントプログラミングに関しては、私は少し初心者です。DoWork イベントと RunCompleted イベントが接続されたバックグラウンド ワーカーがあります。DoWork で例外がスローされた場合、UI を変更したいのですが、別のスレッドにあるため変更できません。エラーを RunCompleted に伝えることはできますが、それも役に立ちません。