問題タブ [tpl-dataflow]
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.
.net - 4.0 の TPL データフロー バージョンはどこにありますか?
TPL データフロー ライブラリの .NET 4.0 バージョンを探しています。
Nuget パッケージには 4.0 バージョンのライブラリがありますが、.NET 4.5 を対象としているようです。
このフォーラムのように、4.0 バージョンへのさまざまな参照を見つけました。
しかし、言及されたリンクは、ライブラリの Nuget ページにリダイレクトするだけです。
.NET 4.0 を対象とする動作中のバージョンがどこにあるか知っている人はいますか?
c# - WCF デュプレックス内の TPL データフロー ブロック
私は SO の新しいライターです。ご容赦ください。
二重サービス契約を結んだ WCF サービスがあります。このサービス契約には、長いデータ処理を行うことを想定した運用担当者がいます。同時データ処理の数を最大 3 に制限するように制約されています。私の問題は、データ処理後に同じサービス インスタンス コンテキストに戻る必要があるため、イニシエータ エンドポイントをコールバックしてデータ処理結果を渡すことです。さまざまな理由により、TPL データフローと WCF デュプレックスに制約されていることに言及する必要があります。
ここに私がこれまでに書いたもののデモがあります
コンソール ライブラリで、WCF 呼び出しをシミュレートします
これがWCFサービスであると思われるものです
オペレーション コントラクトは非同期である必要はありませんが、OutputAvailableAsync 通知が必要でした。
これは良いアプローチですか、それとも私のシナリオに適した解決策はありますか?
前もって感謝します。
c# - C++ の C# TPL データフローに代わるものはありますか?
私は最近、デリゲートを使用して接続されたオブジェクトをシミュレートする方法に関する質問を投稿しました。そこでは、TPL DataFlow ライブラリを使用してアプリケーションのソリューションを非常に簡単かつクリーンに開発することについて素晴らしい回答を受け取りました。
問題は、私が C# の .NET 3.5 以下で立ち往生していることです。.NET 4.5 にアップグレードできたかもしれないと思っていましたが、この段階ではアップグレードできませんでした。私が判断できる限り、Dataflow ライブラリを .NET 3.5 に再ターゲットすることはできないため、次の解決策は、TPL Dataflow と同様の方法で C++ の代替手段を探すことです。これは最良のシナリオではありませんが、コンパイルできます。 C++ コードを DLL に変換し、C# アプリケーションにインポートします。
この質問に対する C++ ライブラリの要件を要約すると、次のようになります。
- 複雑なネットワークでノードを接続し、それらの間でリソースのユニットを渡すことができる必要があります。それらのいくつかは、時間の経過とともに有限量のリソースを生成します。他の人はそれを特定の割合で消費します。
.net - TPL データフロー: これら 2 つのコード スニペットの違いは何ですか?
TPL Dataflowを勉強しています。Belwo は、公式ドキュメントStephen Toub からの 2 つのコード スニペットです。TPL データフローの概要 (TPLDataflow.docx)。しかし、私はそれらの違いが何であるかを完全には理解していません。
ところで、これら 2 つのコード スニペットは、デモ用のドキュメントのサンプルです。それらは完全ではありません。
イメージを順次および同期的にダウンロードする
/li>イメージを順次および非同期にダウンロードする
/li>
c# - タスク データフロー、データ ブロックを完了状態から変更できますか?
データブロックの完了状態を変更できるかどうかを知りたいですか?
たとえば、var block = new BufferBlock<int>();
データ ブロックを完全に でマークしましたblock.Complete()
。ブロックは他のデータ ブロックにリンクされています。block
完了状態を元の !complete 状態に戻すことで、再度実行できるかどうかを知りたいです。
それが不可能な場合、a) すべてのブロックのリンクを解除し、b) すべてのブロックを再インスタンス化し、c) すべてのブロックを再度リンクすることなく、完了を含む複数の実行を実行するにはどうすればよいですか?
フレームワーク全体を再作成することなく、チェーンの各ブロックを完了するなど、データ フロー サイクルを実行するタスクを容易にするアイデアはありますか?
ありがとう
task-parallel-library - I/O パフォーマンス - 非同期 vs TPL vs データフロー vs RX
大量のネットワークおよびディスク I/O を生成する C# 5.0 コードがあります。このコードの複数のコピーを並行して実行する必要があります。次のテクノロジのうち、最高のパフォーマンスが得られる可能性が高いのはどれですか?
await を使用した非同期メソッド
TPL から直接 Task を使用する
TPL データフロー ナゲット
リアクティブ拡張
私はこの並列処理があまり得意ではありませんが、Thread などの低いレバーを使用するとパフォーマンスが大幅に向上する場合は、それも検討します。
c# - 何か間違ったことをしていますか、それとも zip ファイルを並行して展開することはできませんか?
並列抽出をテストするためにこれを作成しました。
テスト用の次の単体テスト:
MaxDegreeOfParallelism = 1 では機能しますが、2 では機能しません。
更新 2
これは私自身が並行して行っていることですが、どちらも機能しません:) continueWithで例外を処理することを忘れないでください。
そして、ここに非同期バージョンがあります:
アップデート 3
次の例外は、handle.Exception でスローされます。
ZipFile がスレッドセーフかどうかを確認する必要があります。
.net - .NET - 使用可能なスレッドができるまでメイン スレッドをブロックする
メインスレッドがファイルを読み取り、それを部分に分割するプロセスがあります。これらのパーツには、さらに処理が必要です。ダウンストリーム処理ができるだけ多くの CPU (または多くのコア) を利用できるように、利用可能なスレッドを利用したいと考えています。メイン スレッドから過剰なバックログを作成したくないので、使用可能な別のスレッドができるまで、メイン スレッドがキューに追加されるのを待機する必要があります。
VB.NET 4.0: Looking to execute multiple threads, but wait until all threads are completed before resuming , but they are waiting for all threads to complete , while I just need any threads to be availableのような多くの記事を目にします
これはTask Parallel Libraryで取り組むことができるものですか、それとも手動でスレッドを作成してスレッドプールを監視する必要がありますか?
c# - TPL データフロー、データ ブロックが最初のアイテムを受信したときの通知
最初のアイテムが入力バッファーで受信されたとき、またはデータ ブロックで処理されたときに、1 回限りの通知をサブスクライブできるかどうか疑問に思います。データブロック内にフラグを設定できることは承知していますが、新しいアイテムごとにフラグのチェックを実行するため、オーバーヘッドが発生します。私のデータ ブロックは数百万のアイテムを処理するため、このフラグは不要なオーバーヘッドを追加します。
最初の着信アイテムで通知を受けるより良い方法はありますか?