この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 6386|答える: 3

[出典] .NET Coreの高性能キューチャネルが使用されています

[リンクをコピー]
2023年5月8日 22:11:01に投稿 | | | |
System.Threading.Channels は.NET Core 3.0以降に導入された新しいコレクションタイプメッセージのキューイング、データの生成・利用に利用でき、公開のライターAPIとリーダーAPIはメッセージの生成者と利用者に対応しているため、Channelはより簡潔で使いやすいものとなっています。

.NET/C# は BlockingCollection バックグラウンドタスクキューに基づいています
https://www.itsvse.com/thread-9528-1-1.html


System.Threading.Channels ライブラリ:ハイパーリンクのログインが見えます。
チャンネル<T>クラス:ハイパーリンクのログインが見えます。

チャンネルの種類

Microsoftは容量制限のあるバウンドチャネルと、容量が制限されたアンバウンドチャネルの2種類のチャネルを提供しています。

容量が限られたチャネルを作成する:Channel.CreateBounded<string>(100);
無制限の容量を持つチャンネルを作成してください:Channel.CreateUnbounded<string>();

無制限チャンネルを作成

チャネルを作成する際、ChannelOptionsのSingleWriterとSingleReaderを設定して、チャネルがfalseに設定されている場合は単一のプロデューサーと消費者を指定します。SingleWriter = trueを設定すると、同時にデータを書き込めるプロデューサーは1つだけになります。SingleReader = trueも同じです。


以下のコードで3つのプロデューサースレッドと1つのコンシューマースレッドを開いてみてください。



消費者はWaitToReadAsyncを使ってデータが読み取られるまで待ちます。 消費者はデータが利用可能になってからのみ読み取ろうとします。


上記のコードでは、消費者がデータを一つずつ読み取り、操作を行う方法を説明しますバルク消費者消費データ加工はどうですか?

以下のコードで新しいChannelReaderExtensions拡張機能を作成しましょう:


消費者コードを以下のように調整します:



(終わり)




先の:ASP.NET コア(18) シンプルなOutputCache出力キャッシュをカスタマイズする
次に:[実戦]。 NET/C#オフラインIPアドレス(ホーム)ロケーターライブラリ
2023年5月8日 22:50:27に投稿 |
学ぶために
2023年5月12日 10:07:46に投稿 |
学ぶために
2023年5月16日 17:21:37に投稿 |
学ぶために
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com