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

c# - バックグラウンド ワーカーのイベント処理

バックグラウンド ワーカー スレッドでのイベント処理に苦労しています。

私が遭遇したすべてのドキュメントでは、DoWork イベント ハンドラーが例外をスローした場合、その例外は RunWorkerCompleted ハンドラーで処理する必要があり、その例外は RunWorkerCompletedEventArgs の Error プロパティで使用できると信じています。

これは問題ありませんが、デバッグ時に、例外がユーザー コードによって処理されないというメッセージが常に表示されます。これは、私のアプローチに問題があると私に思わせます。

これを解決するには、どのような手順を踏む必要がありますか?

よろしく、ジョナサン

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

.net - W3C 検証 API のタイムアウトの問題を解決するのを手伝ってください

W3C 検証サービスを使用して、TextBox に入力したテキストが有効なマークアップであることを確認しています。

有効

それはほとんど働いています。しかし、特定の条件下では、私の入力はエラーになり、無限のタイムアウト例外が発生します。プログラムを再び機能させるには、プログラムを閉じて再度開く必要があります。

私のコードを一瞥して、この問題を解決するのを手伝ってください。

TextBox と StatusBar を備えた非常に単純な WPF アプリケーションを作成しました。入力すると StatusBar が更新され、入力したマークアップが有効か無効かがわかります。私がサービスを叩いていないように、検証はキーストロークなしで 1 秒以上経過した後にのみ行われます。

無効 http://img9.imageshack.us/img9/3788/invalidr.gif

StatusBar には、"Validating..."、"Valid"、"Invalid"、または (存在する場合) 例外のメッセージが表示される場合があります。

検証中 http://img7.imageshack.us/img7/5842/validating.gif

以下は正常に検証されます。

XHTML 入力

段落を次のよう<p>This is a test</に分割すると、応答 XML を処理しようとしているときに次の例外が発生します。

名前を「"」文字で始めることはできません。16 進値は 0x22 です。行 86、位置 40。

XML 例外 http://img11.imageshack.us/img11/3066/namecannotbegin.gif

検証がそのように 2 回続けて失敗した場合、段落タグを修正して通常どおり続行することはできないようです。何らかの理由で、後続の各検証は次の例外で失敗します。

操作がタイムアウトしました

タイムアウト http://img21.imageshack.us/img21/7600/timedout.gif

これは非常に奇妙です。

プロジェクト全体を投稿して申し訳ありませんが、問題の原因がわかりません。それは私のスレッド化、Web サービス通信、例外処理かもしれません...私はそれを見つけることができないようです. StreamWriter、HttpWebRequest、および ResponseStreams を正しく閉じていますか?

XAML

ビジュアルベーシック

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

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

iis - IIS7 の BackgroundWorker スレッド - FAIL!

統合パイプライン モードの IIS 7 で実行されているサイトで、BackgroundWorker スレッドを使用する際に問題が発生した人はいますか?

私はそのような獣を使用してデータベース スキーマ (明らかに管理者機能) を更新しようとしていますが、Cassini では完全に機能しますが、IIS 7 に展開すると、スレッドが約 1 行のコードを取得し、静かに終了します。スレッドが終了した理由を知る方法はありますか?

前もって感謝します。

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

backgroundworker - ThreadPool がスレッドを Backgroundworker のインスタンスに割り当てるのはいつですか?

私が間違っていなければ、バックグラウンド タスクを実行するために、.NET の Backgroundworker は CLR ThreadPool からスレッドを取得します。backgroundworker オブジェクトのコレクションまたはリストをインスタンス化したいと考えています。ただし、コレクション内のすべてのオブジェクトが同時に呼び出されるわけではありません。したがって、10 個の backgroundworkers オブジェクトのコレクションがある場合、CLR ThreadPool は 10 個のスレッドを割り当て、コレクション内のオブジェクトが多すぎると ThreadPool 内のスレッドを使い果たしてしまうのではないかと心配しています。

ここで私の質問ですが、ThreadPool はいつスレッドを BackgroundWorker のインスタンスに割り当てますか? オブジェクトがインスタンス化されたときですか、それともメソッド RunWorkerAsync() が呼び出されたときですか?

ご協力いただきありがとうございます

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

c# - プログレスバーが更新されない

XML ファイルにデータを書き込む次のコードがあります。

データベースからデータを取得するのと同じ BackgroundWorker を使用しています。私の進行状況バーは、データベースからの読み取り中に進行状況を適切に表示します。ただし、XML 書き込みの進行状況バーをゼロにすると、プロセスが正しく完了しているにもかかわらず、進行状況バーは 0 のままになります。

誰でも理由を提案できますか?

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

.net - .NETバックグラウンドワーカーの生成

定期的に操作を起動する必要があるWindowsアプリに取り組んでおり、時間がかかる場合があります。これらの操作をBackgroundWorkerで実行し、操作ごとに簡単なWinFormを作成するパターンになりました。ここで、フォームに必要なパラメーターを渡し、フォームをBackgroundWorkerに接続して、関数呼び出しを行います。フォームに出力が表示されます(プログレスバーの移動、テキストが更新でいっぱいになるなど)。

明らかに、このフォームは非常にクッキーカッターです。フォームコピー間で実際に異なるのは、どのメソッドがどのオブジェクトで呼び出されるかだけです。ですから、私たちがやりたいのは、それを汎用化することです。これにより、フォームを取得し、オブジェクト(静的呼び出しの場合はnull?)、関数名、およびパラメーターの配列を渡して、「実行」することができます。そこから。Reflectionを使用してこれを行うことができました。この場合のリフレクションについて私たちが気に入らないのは、強い型付けがないことです。メソッド呼び出しのスペルミスなどは、コンパイル時ではなく、実行時にキャッチされます。これをよりエレガントで堅牢にする可能性のあるものはありますか?デリゲートやエクスプレッションツリーなどについて話している人の話を聞いたことがあります。しかし、前者が当てはまるかどうかはわかりませんが、後者についてはまだ少し暗闇の中でです。

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

c# - 偽装と BackgroundWorker

BackgroundWorker偽装でクラスを使用しようとすると、少し問題があります。Google からの回答に従って、このコードを偽装しました

BackgroundWorkerクラスで使用するまでは、非常にうまく機能していました。この場合、非同期で実行されるコードに偽装を追加しました。エラーはありませんが、非同期メソッドで使用すると偽装が機能しないという問題があります。

コードでは、これは次のようになります。

  • BGWorker をインスタンス化し、イベント ハンドラーを DoWork イベントに追加します。

    /li>
  • 上記のハンドラーでは、何らかのコードを実行する前に偽装が行われます。

    /li>
  • コードはで起動されます

    /li>

前に述べたように、エラーはスローされません。コードは、偽装を実行していないかのように動作するだけです。つまり、デフォルトの資格情報が使用されます。

さらに、偽装メソッドは true を返すため、偽装は特定のレベルで発生しましたが、おそらく現在のスレッドでは発生していません。

これは、非同期コードが別のスレッドで実行されるために発生する必要があるため、MyImpersonationクラスに何かを追加する必要があります。しかし、何?:)

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

c# - BackgroundWorkerとスレッド

与えられたタスクを達成するためにどちらかを使用することの長所と短所は何ですか。

百万ドルの質問は、どれをいつ使用するかです。

どうもありがとう。