問題タブ [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.
c# - バックグラウンドワーカー: キャンセル中の例外
キャンセルできるバックグラウンド ワーカーがあります。
CancelPending 変数が true になると (worker.CancelAsynch() を呼び出す UI でのユーザー操作に応答して)、通常のフローはそれ自体を中断します。その場合、例外がスローされます (通常のフローが中断されるため、多くの null 参照例外がスローされます)
そのため、ワーカーが戻ったときに、ワーカーがキャンセルされたときにスローされた例外 (黙って無視するため) と、ワーカーがキャンセルされなかったときにスローされた例外 (UI に報告するため) を区別できるようにしたいと考えています。
私のコードは次のとおりです(c#/vbの混合で申し訳ありません...):
ワーカークラス:
コールバック:
次に、worker.CancelAsynch() を実行しているときに、Completed コールバックで e.Cancelled が false に設定されます (これは私が期待したものではありません)。ワーカーで「Trow exc」をコメントアウトし、再度テストすると、e.Cancelled が正しく true に設定されます。
必要な情報を取得する最もクリーンな方法は何ですか?つまり、worker が cancelPending 状態にあったときに、完了したハンドラーでポップアウトする例外がスローされたかどうかを知りたいですか?
c# - スケジューラの種類
何かを実装する必要があります。私のプログラムで特定のタスクを実行できる何か。たとえば、10 秒ごとにファイルのログに何かを書き込みます。もちろん、バックグラウンド スレッドで実行することを想定しています。
どこを掘ればいいですか?私はマルチスレッドにあまり慣れていません。BackgroundWorker クラスについて聞いたことがありますが、ここで適切かどうかはわかりません..
c# - このコードをスレッドセーフにするのを手伝ってください
データの読み込みとフィルタリングをスレッドセーフにするのに少し問題があります。
BackgroundWorker を介してすべてのデータ生成を処理する、コントロールの基本クラスの次のコード。これにより、"this.DataWorker.RunWorkerAsync()" でエラーが発生し、BackgroundWorker がビジー状態であることがわかります。
コードは2 つの可能な場所で呼び出されます。まず、コントロールがオンになっているフォームのタイマーによって:
次に、ユーザーが多数のドロップダウン リストからフィルター オプションを選択すると、次のようになります。
メイン フォームの Timer は 60 秒ごとに実行され、Populate メソッドに true を渡します。reload を true として渡すと、WebService から新しいデータ セットを取得する必要があることが BackgroundWorker に通知されます。
私の知る限り、タイマーが人口イベントを発生させるのとまったく同時にフィルターオプションをクリックすると、エラーが発生します。Populate メソッド、つまりロックに欠けているものがあると思いますが、このインスタンスで正しく使用する方法がわかりません。
コードはユーザー入力に優先されます。ユーザーがフィルター オプションを選択すると、自動更新がブロックされます。自動更新が起動すると、フィルター オプションは一時的に無効になります。それらが同時に発生した場合、ユーザー入力が優先されます (可能な場合)。
誰かが助けてくれることを願っています!
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ソフトウェアがロードされません(例:サービスがリッスンされません)
直接呼び出すと(つまり、デーモンコードを使用しない)、正常に機能します。
c# - 選択に基づいてツールストリップを再描画します
ユーザーがチェックボックスリストからオプションを選択し、選択したアイテムでツールストリップを自動的に再描画/再描画できるようにするc#winformsアプリを作成するように依頼されました。
私はwinformsに慣れていないので、どのようにアプローチするかわかりません。BackgroundWorkerプロセスを使用する必要がありますか?Invalidate()?
少し混乱しています。
正しい方向を指すのを助けていただければ幸いです。
.net - WPF BackgroundWorker ListView フィルターの問題
BackgroundWorker 内でフィルタリングしようとしている WPF ListView があります。私のコードを以下に示します。
このコードはフィルタリングを通過しますが、「別のスレッドが所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」というエラーで失敗します。次の行で:
ここで何が問題になるでしょうか?BackgroundWorker でフィルタリングしたサンプルが見つからないようです。
更新: BackgroundWorker を使用して WPF ListView をフィルター処理するサンプルを知っている人はいますか?
ruby-on-rails - Railsでワーカープロセスを整理する最良の方法は何ですか?
スケジュールに従って、またはいくつかのパラメーターを使用してバックグラウンド プロセスとして実行する必要があるコードがよくあります。共通の要素は、それらがディスパッチ プロセスの外で実行されることですが、Rails 環境 (および場合によっては渡されたパラメーター) へのアクセスが必要です。
これを整理する良い方法とその理由は何ですか? 特定のプラグインや gem を使用したい場合は、なぜ便利だと思うのかを説明してください。使用しているプラグインだけを挙げてはいけません。
c# - データのフェッチ中に GUI が応答しない
私のアプリケーションは WebRequest を使用して Web ページからデータをフェッチすることがよくありますが、フェッチ中にボタンなどをクリックすることはできません。スレッド/バックグラウンドワーカーを使用する必要があることは理解しましたが、正しく機能させることができません。GUI の応答性が向上するわけではありません。
アプリケーションが応答しなくなるのを防ぐために、ある種のスレッド化を適用したいコード:
編集:ありがとう、lc、私はそれにかなり似たものを試しました。しかし、そのようにバックグラウンドワーカーを使用することに関する私の問題は次のとおりです。(私の場合は SQLGet、あなたの場合は) StartQuery を呼び出した関数に queryResult を戻すにはどうすればよいですか?
私の例では、返された文字列は、文字列が内部で呼び出される void のローカル変数として使用されます。
また、同時に多くのクエリが存在する可能性があるため、グローバル変数に割り当てるリスクを冒したくありません。
winforms - 「重い」データを処理するときの WinForms UI の応答性
UI の応答性を維持しながら、データをバックグラウンドでロードできるように Windows フォームを変更しています。データの取得とバインドの両方にかなりの時間がかかります。両方をバックグラウンドで実行するのが理想的ですが、バックグラウンド (メイン スレッドの外側など) で実行する必要がある UI の更新の種類についてはあいまいな点があります。バックグラウンドでのデータ取得とデータ バインディングを示す確かな例は、非常に役立ちます。
c# - リフレクションを介して BackgroundWorker RunWorkerCompleted イベントを追加する方法は?
通常、私は行きます:
ReportManager クラスは、使用するイベント ハンドラーを含む静的クラスです。
BackgroundWorker を作成したので、ReportManager で定義されているように RunWorkerCompleted イベントをアタッチします。ただし、ReportManager は参照できません。そうしないと、循環参照が発生するため、リフレクションが必要になります。
どんな助けでも大歓迎です。
私は以下を見てきましたが、あまり遠くには行きませんでした: