問題タブ [parallel-extensions]
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.
vb.net - ParallelExtensionsとVB.netで値を渡す
ParallelExtensionsを使用してVB.netで次のことを行う方法の例を探しています。
私が行き詰まっているのは、私のパラメーターInputValueforWorkをタスクに渡す方法です。
任意の提案とおそらくコーディング例を歓迎します。
アンドリュー
.net - なぜ LazyInit なのか参照型に制限
使用したい疑似リアルタイムデータ処理アプリケーションがあるLazyInit<double>
ため、不要な計算は行いませんが、LazyInit<T>
T をクラスに制限します。私はそれを回避することができますが、私は明らかにそうしないことを好みます.
これがなぜなのか誰か知っていますか?
c# - 並列拡張機能: LazyInit を理解するのに役立ちます
将来の読者のための更新: .NET 4 が登場するとLazyInit<T>
、CTP から名前Lazy<T>
が変更され、構造体からクラスに変更されるため、変更可能な構造体が問題になる理由の例を除いて、これはほとんど適用されません。気をつけないと。
Parallel Extensions June CTP で LazyInit を試してみましたが、次のコードは同じ Guid を 1000 回出力すると予想していましたが、代わりに 1000 の異なる Guid を出力しました。明らかに、LazyInit がどのように機能するかについて、ここで明らかな何かが欠けています。
.net - Microsoft Parallel Extensions to .NET Framework 3.5、2008 年 6 月の Community Technology Preview を使用して製品コードを開発できますか?
この CTP の使用に対する推奨事項はありますか? 不安定ですか?
java - Java で同等の並列拡張機能
私は .Net 開発で並列拡張機能を使用した経験がありますが、使いやすい並列処理ライブラリの恩恵を受ける Java での作業を検討していました。JVM は、並列拡張に匹敵するツールを提供しますか?
.net - NUnit が PLINQ コードをテストした後に AppDomainUnloadedException を防ぐにはどうすればよいですか?
を診断して最小化または防止するにはどうすればよいAppDomainUnloadedException
ですか?
NUnit 2.5.2 はAppDomainUnloadedException
、PLINQ を含む長い (10 秒を超える) テストの後、一貫してスローします。
2008 年 7 月にさかのぼると、Stephen Toub は次のように述べています。
はい、CTP のスケジューラはスレッドの中止を適切に処理しません。これにより、シャットダウン中のドメインにライブ スケジューラが存在する場合にプロセスがクラッシュすることがよくあります (AppDomain のシャットダウンにより、そのドメイン内のスタック フレームを持つすべてのスレッドでスレッドが中止されるため)。 )。将来のリリースに向けてこれを強化するために取り組んでいます。
次のような多くの回避策を試しました。
- 別のメソッドでテストを実行して、浮遊参照を排除する
/domain:None
NUUnit 引数として指定するlegacyUnhandledAppDomainPolicy
要素を削除するnunit-console.exe.config
パラメトリック テストを高速化するには PLINQ が必要なため、競合状態の可能性を減らすためにNUnit をバックグレードすることはできません。問題のない NUnit のバージョンは、パラメトリック テストをサポートしていません。
c# - Parallel.ForEach 内でハッシュテーブルを使用していますか?
本体内で集中的な操作を実行する Parallel.ForEach ループがあります。
この操作では、Hashtable を使用して値を格納し、他の連続するループ項目に再利用できます。集中的な操作が完了した後に Hashtable に追加すると、集中的な操作を再度実行する代わりに、次のループ項目が Hashtable を検索してオブジェクトを再利用できます。
ただし、私は Parallel.ForEach を使用しているため、Hashtable.Add と ContainsKey(key) 呼び出しが並行して実行されている可能性があるため、非同期になるという安全でない問題があります。ロックを導入すると、パフォーマンスの問題が発生する可能性があります。
サンプルコードは次のとおりです。
このシナリオを処理できる API、TPL ライブラリ内のプロパティ設定が必要です。ある?
.net - .NET 4.0ベータ2でより多くの同時スレッドを生成するようにPLINQを作成するにはどうすればよいですか?
Parallel Extensionsの以前のバージョンでは、スレッド数を設定できました。
しかし、今ではその過負荷はもう利用できません。今それを行う方法は?
c# - TaskFactory.StartNew メソッドが一般的でないのはなぜですか?
.NET 4.0 で TPL を使用して新しい副作用のみのタスク (つまり、結果を返さないタスク) を開始するための奇抜な方法は、次の API を使用することです。
しかし、なぜこの API の署名はこのように見えないのですか?
またはこのように
技術的な理由ですか、それとも他の理由ですか?
c# - Parallel.ForEach が新しいスレッドをスピンアップしない
Parallel.ForEach が新しいスレッドを起動しない
みなさん、こんにちは。マイクロソフトの .NET Framework 用 Parallel Extensions の Parallel.ForEach を使用して記述した、非常に IO 集中型の操作があります。大量のファイルを削除する必要があり、削除するファイルをリストのリストとして表します。ネストされた各リストには 1000 個のメッセージがあり、これらのリストは 50 個あります。ここでの問題は、後でログを確認すると、Parallel.ForEach ブロック内で実行されているスレッドが 1 つしかないことです。
コードは次のようになります。
より単純なデータ構造を持ち、IO ロジックを持たないサンプル コードをいくつか書いたところ、Parallel.ForEach ブロック内でいくつかの異なるスレッドが実行されていることがわかりました。上記のコードの Parallel.ForEach で何か間違ったことをしていますか? つまずいているリストのリストである可能性がありますか、それとも IO 操作にある種のスレッド制限がありますか?