Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 6386|Yanıt: 3

[Kaynak] .NET Core yüksek performanslı kuyruk kanalları kullanılır

[Bağlantıyı kopyala]
2023-5-8 22:11:01 tarihinde yayınlandı | | | |
System.Threading.Channels.NET Core 3.0 sonrası tanıtılan yeni koleksiyon türleriMesajları sıraya almak, veri üretmek ve tüketmek için kullanılabilir ve kamuya açık Yazar ve Okuyucu API'leri mesaj üreticileri ve tüketicilerine karşılık gelir; bu da Kanalı daha özlü ve kullanımı kolay hale getirir.

.NET/C#, BlockingCollection arka plan görev kuyruğuna dayanmaktadır
https://www.itsvse.com/thread-9528-1-1.html


System.Threading.Channels kütüphanesi:Bağlantı girişi görünür.
Kanal<T> sınıfı:Bağlantı girişi görünür.

Kanal türü

Microsoft iki tür kanal sunar: biri sınırlı kapasiteye sahip bağlı kanal, diğeri sınırsız kapasiteye sahip bağlanmamış kanal.

Sınırlı kapasiteli bir kanal oluşturun:Channel.CreateBounded<string>(100);
Sınırsız kapasiteye sahip bir kanal oluşturun:Channel.CreateUnbounded<string>();

Sınırsız kanallar oluşturun

Bir kanal oluştururken, ChannelOptions'ın SingleWriter ve SingleReader'ini tek bir üretici ve tüketici olarak ayarlayabilirsiniz; kanal false olarak ayarlandığında, SingleWriter = true ayarlandığında aynı anda sadece bir üreticinin veri yazmasını sınırlar, SingleReader = true aynıdır.


Aşağıdaki kodla üç üretici iş parçacığı ve bir tüketici başlığı açmayı deneyin:



Tüketici, verilerin okunmasını beklemek için WaitToReadAsync kullanır. Tüketiciler, verileri ancak erişilebilir olduktan sonra okumaya çalışır.


Yukarıdaki kodda, tüketiciler verileri tek tek okur ve işlemleri nasıl yapılırToplu tüketici tüketim verileriPeki ya bir işleme parçası?

Aşağıdaki kodla yeni bir ChannelReaderExtensions uzantısı oluşturun:


Tüketici kodunu aşağıdaki şekilde ayarlayın:



(Son)




Önceki:ASP.NET Core (18) Basit bir OutputCache çıkış önbelleğini özelleştirin
Önümüzdeki:[Gerçek dövüş]. NET/C# çevrimdışı IP adresi (ev) bulucu kütüphanesi
2023-5-8 tarihinde 22:50:27 tarihinde yayınlandı |
Öğrenmeyi öğren
2023-5-12 10:07:46 tarihinde yayınlandı |
Öğrenmeyi öğren
2023-5-16 tarihinde yayınlandı 17:21:37 |
Öğrenmeyi öğren
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com