問題タブ [queueuserworkitem]
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# - C#のスレッドプールが遅すぎます、それをスピードアップする方法はありますか?Thread.Sleep(0)およびQueueUserWorkItemの問題
CPUを集中的に使用する作業を行う必要があるC#アプリケーションでスレッドプールを使用しています。ちなみに、遅すぎるようです(編集:デバッグ文字列"Calculating on "
+ lSubArea.X + ":" + lSubArea.Y + " "
+ lSubArea.Width + ":" + lSubArea.Height
は10秒ごとに数回しか出力されませんが、少なくともNUM_ROWS_GRID ^ 2 =数秒ごとに16回表示されると予想されます)、SetMinThreads
メソッドを介してMinThreadsも変更します。カスタムスレッドに切り替えるかどうか、またはそれを高速化する方法があるかどうかはわかりません。Googleで検索すると結果が返されますが、何も機能しません。MSDNと同じ状況。
古いコードは次のとおりです。
編集:CreateDiffFrame関数は、1秒間に何回呼び出されるかを知るために使用したスタブにすぎません。この場合、スレッドを使用する最良の方法を定義するので、CPUを集中的に使用する作業に置き換えられます。
編集:私はすべてのThread.Sleep(0);を削除しました。ルーチンを高速化する方法かもしれないと思いましたが、ボトルネックになる可能性があります。新しいコードは次のとおりです。
編集:キャッシュされた値と無限のループを回避するために、WorkEndとVideoOnを揮発性にしました。セマフォも追加して、前のバンチが完了した後にすべてのワークアイテムのバンチを開始するようにしました。現在は非常にうまく機能しています。
c# - メインスレッドで ThreadPool.QueueUserWorkItem を実行できますか?
マルチスレッド アプリケーションで Mac 上の SL に関する奇妙な問題に取り組もうとしています。私のアプリケーションでは、ThreadPool を使用して、さまざまな作業項目をキューに入れています。HandleRequest
経由でのみ呼び出されるメソッドがありThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest))
ます。
アプリケーションの実行速度が非常に遅かったため、Windows からリモート デバッグし、アプリケーションを一時停止して、限られたリソースで待機しているために HandleRequest でスタックしているスレッドを見つけました。そこには別の問題があるので、それは問題ありませんが、メイン スレッドで待機している HandleRequest があることにも気付きました。どうすればそれが起こりますか?ThreadPool がバックグラウンドでワーカー スレッドを作成し、その上でタスクを実行していると思いました。
これは、ThreadPool がワーカー スレッドを使い果たしたため、呼び出し元のスレッドを使用してコールバック メソッドを実行しようとしたために発生しているのでしょうか?
winapi - WT_EXECUTEINUITHREADは何をしますか?
WT_EXECUTEINUITHREAD
関数のフラグは何をしQueueUserWorkItem
ますか?
wcf - WCF メソッドで ThreadPool.QueueUserWorkItem を使用する
完了までに 1 秒以上かかる WCF メソッド内で、約 25 ~ 30 秒かかるバックグラウンド ロジックを実行する必要があります。そのロジックを WaitCallback にラップして、Web メソッドを終了する直前に ThreadPool.QueueUserWorkItem に渡すことにしました。最初は問題なく動作しましたが、Web メソッドが定期的に 1 秒以内に応答しないため、QueueUserWorkItem メソッドがタイムリーに返されないことがあると思われるため、今は考え直しています。WCF メソッド内で QueueUserWorkItem を使用する際に問題はありますか?
c# - .net 4.0 スレッドプールの例外
以下のコードは、.net 4.0 でコンパイルすると以下の例外をスローします。.net 2.0 に準拠している間、大丈夫です。私に遭遇した人はいますか?親切に助けてください (私はコールバック関数で DateTime を使用しませんでした)。</p>
c# - ThreadPool.QueueUserWorkItemのAgrumenNullException
さまざまなトレッドから頻繁に呼び出されるメソッドがあります。ThreadPool.QueueUserWorkItem(display(angebot), null);
呼び出されると、パラメーターcallBack
(最初のパラメーター)がnullであることを示すAgrumenNullExceptionが発生することがあります。
私は何が間違っているのですか?
multithreading - WindowsサービスでThreadpool.QueueUserWorkItemを使用するにはどうすればよいですか?
Threadpool.QueueUserWorkItemを使用しているWindowsサービスがあります。このサービスは、複数のクライアントデータベースに接続し、データを取得し、XLSに変換して、対応するFTPにファイルを送信します。
以下のコードに関して3つの質問があります。
- Threadpool.QueueUserWorkItemを正しく使用していますか?
- 問題を回避するために、コードのどこかでロックを使用する必要がありますか?はいの場合、どこでどのオブジェクトに。
- コードに正しくないものはありますか?はいの場合、それをどのように、どのように処理しますか?
コード:
サービスは正常に機能し、適切な結果が得られますが、正しく実行していることを確認し、後で問題が発生しないようにする必要があります。
c# - ThreadPool.QueueUserWorkItem と Parallel.ForEach の違いは?
次の 2 つのアプローチの主な違いは何ですか。
ThreadPool.QueueUserWorkItem
System.Threading.Tasks.Parallel ForEach
私はマルチスレッドが初めてで、各ケースで何が起こるかを知りたいです (実行プロセスに関して) 各アプローチのマルチスレッドのレベルは何ですか? 両方のプロセスを視覚化するのを手伝ってください。
SendFilesToClient:データベースからデータを取得し、Excel に変換して、Excel ファイルをそれぞれのクライアントに送信します。
ありがとう!
multithreading - 多くのスレッドを持つスレッドプール キュー ユーザー作業項目
注意: 私は、次のコードから明らかなように、スレッドプールの操作にあまり慣れていません。このキューに多くの値をプッシュし、1 つのスレッドが完了するのを待ってから次のスレッドに移動し、システムが実行中のスレッド数の同期を処理できるという印象を受けました。
ThreadPool::QueueUserWorkItem(waitcallback, num) を使用しようとしていますが、以前のアルゴリズムに応じて num の値が動的な値まで反復されます。私が直面している問題は、プログラムが高くなりすぎるとプログラムがクラッシュすることです。
「ランタイム エラーです。このアプリケーションはランタイムに通常とは異なる方法で終了するよう要求しています。詳細については、アプリケーションのサポート チームにお問い合わせください。」というメッセージが表示されます。
私が最後に実行したのは numBlocks = 644 でした。