問題タブ [parallel.foreach]

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

c# - Parallel.ForEach()とforeach(IEnumerable).AsParallel())

エルグ、Reflectorを使用してBCLでこれら2つのメソッドを見つけようとしていますが、見つけることができません。これら2つのスニペットの違いは何ですか?

A:

B:

どちらか一方を使用すると、異なる結果が生じますか?(両方の例の括弧で囲まれた本文で行っていることはすべてスレッドセーフであると想定します。)

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

c# - Parallel.ForEach のエラー - オブジェクト参照がオブジェクトのインスタンスに設定されていません

デバッグできない奇妙な問題があります。情報を解析するデリゲートは次のとおりです。

デリゲート自体は、次のように 2 回呼び出されます。

すべてが正しく実行されているように見えます。特に、Parallel.ForEachデリゲートの部分はエラーなしで実行されます。しかし、その後、コードは行Ctx.SaveChanges ()で壊れ、メッセージが表示されます

オブジェクト参照がオブジェクト インスタンスに設定されていません。

しかし、Ctx(この壊れた状態で) にカーソルを合わせると、Ctxは表示されませんnull

誰かが何が起こっているのか教えてもらえますか?

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

c# - Parallel.ForEach は ForEach より遅い

コードは次のとおりです。

問題は、約 40ms かかるParallel.ForEach通常の に対して約 400ms かかることです。foreach正確に何が間違っているのですか?なぜこれが期待どおりに機能しないのですか?

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

c# - BlockingCollection.GetConsumableEnumerable を使用した Parallel.ForEach ループ

を使用しているときにParallel.ForEachループが終了するのはなぜですか?OperationCancelledExceptionGetConsumableEnumerable

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

entity-framework-4 - ObjectContext.AddでParallel.ForEachの利点を使用します

汎用リポジトリパターンでEntityFrameworkを使用しています。次のメソッドを使用してオブジェクトを追加しました。

また、これを拡張して複数のエンティティをサポートすることも考えています。

上記のシナリオでループのParallel.ForEach代わりに使用することには実際の利点がありますか?foreach

またSaveChanges()、ループの最後まで呼び出していないので、たとえば主キー違反がある場合、それはループ内にスローされますか、それともSaveChanges()呼び出されたときにスローされますか?変更をロールバックできますか?

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

excel - すべての Excel ワークシート セルでキーワードを検索する際に Parallel / PLINQ を利用する最良の方法

タイトルのとおり、Excel に似List<string> keywords; たオブジェクト モデルがあります。Workbook

WorkbookCellリスト内のキーワードに一致するすべてを取得したいと思います。

私は多分 Parallel 検索が良い考えだと思っていました:

実際、これはあまりにも多くの並列でしょうか? より良いアイデアがあれば教えてください。

** 通常は 20 未満のワークシートしかありませんが、すべてのワークシートには 10000 を超える行と数百の列が含まれます。

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

azure - ファイルを Azure BLOB ストレージにアップロードする - Parallel.Foreach は Foreach より遅い

ローカル ストレージから BLOB ストレージにフォルダーをアップロードするための次のコードがあります。BLOB の名前にフォルダー名自体を含めます (コードは、ここにあるいくつかのメソッドに基づいていますhttp://blog.smarx.com/posts/pivot-odata -and-windows-azure-visual-netflix-browsing ) :

と :

このコードは機能し、意図したとおりにフォルダをアップロードしますが、完了するまでに非常に時間がかかります.25個のファイルをアップロードするのに20秒かかり、それぞれ40KB~です. そのため、並列ループを次のような通常のループに置き換えるのにうんざりしていました。

アップロードは瞬時に完了します (約3 秒)。

It's also important to note that I am working against the storage emulator for development.
The Parallel.Forech should obviously be faster. Does this difference comes form the storage emulator limitations (And when going live, Parallel would be faster) or is it something else I might be doing wrong ?

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

c# - Parallel.ForEachおよび閉じたTextReader例外から読み取ることができません

さまざまなフィードのURLを含むテキストファイルがあります。次のコードを使用して、コレクション(IEnumerable)内のすべてのURLを読み取っています。

次の行では、合計数を印刷しています:

その後、Parellel.ForEach構文を使用して、各URLに対応するロジックを実行します。以下はコードです、私は使用しています:

問題は、URLの数を出力するコード、つまりURLオブジェクトのCount()メソッドを呼び出すコードを追加するとすぐに、次の例外が発生することです。例外 :

また、カウント値を出力する行を削除/コメントアウトすると、Parallel.ForEachループは正常に実行されます。

ここで何がうまくいかないのか誰かが何か考えを持っていますか?

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

c# - foreach ループを Parallel.ForEach ループに変更する

さて、これが基本的な背景です。このプログラムは Outlook/Exchange に接続し、すべてのメール メッセージを解析して暗号化されているメッセージを確認します。私がやりたいことの 1 つは、マルチスレッドを使用して、メッセージをスキャンするのにかかる時間を短縮することです。

現在、コードは次のようになっています。

代わりに Parallel.ForEach 関数を利用したいと思います。どうやって設定しようか悩んでました。式を今のように設定しようとしましたが、Object 型が変数として使用されているというエラーが表示されます。これについての助けをいただければ幸いです。

わかりました、与えられたレイアウトは正しいようです。コードは現在次のようになっています。

次のエラーが表示されます。

エラー 15 メソッド System.Threading.Tasks.Parallel.ForEach(System.Collections.Concurrent.OrderablePartitioner, System.Action)' の型引数を使用法から推測できません。型引数を明示的に指定してみてください。

何か案は?ご協力いただきありがとうございます。

さて、私はこのサイトを見つけました: http://blogs.msdn.com/b/pfxteam/archive/2010/03/02/9971804.aspxそして、それは私がエラーに必要な答えを与えてくれました. キャスト関数を作成して、コレクションを汎用コレクションに変更する必要がありました。

そして、オリジナルを微調整して

現在、エラーなしで実行されます。万歳。

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

c# - Parallel.ForEach を使用して datagridview に行を作成する

最近、MP3 ファイルにタグを付けるための「クイック」Windows フォーム アプリを作成することにしました。.Net 3.0 以降、並列処理については何も行っていないため、標準の foreach ステートメントを使用しているときに発生する UI ロックを処理する Parallel.ForEach メソッドを調べています。ここに抜粋があります:

Parallel.ForEach() の簡単な使用法を理解しましたが、その特定のメソッドを使用して UI を更新する必要があるかどうかわかりません。助言がありますか?