Channel.Create
Channel.CreateBounded ve CreateUnbounded ile kanal oluşturmayı öğrenirsin.
Channel.Create
Channel<T>, üretici ve tüketici arasında zaman uyumsuz bir sıra oluşturur. Channel.CreateUnbounded<T>() sınırsız bir kanal, Channel.CreateBounded<T>(capacity) ise sabit kapasiteli bir kanal yaratır.
Kanalın iki yüzü vardır: Writer üretici yazar, Reader tüketici okur. Bu ayrım, akış (pipeline) mimarisini temiz tutar. Kanallar System.Threading.Channels altında gelir.
Bounded kanal ve kapasite
Bounded kanal, kapasite dolduğunda yazmayı denetimli biçimde engeller. Channel.CreateBounded<int>(5) beş öğelik bir tampon açar. Altıncı yazma, bir öğe tüketilene kadar bekler.
Bu, hızlı üreticiyi yavaş tüketiciye göre dengeleyen backpressure (geri basınç) sağlar. Kanalın Writer ve Reader özellikleri bu denetimi sağlar.
Uygulama İki kanal türü yarat
unbounded adında sınırsız bir string kanalı ve bounded adında kapasitesi 5 olan bir int kanalı yarat. Her birinin oluşturulduğunu ayrı satırda yazdır.
Örnek çözümü göster
var unbounded = Channel.CreateUnbounded<string>(); var bounded = Channel.CreateBounded<int>(5); Console.WriteLine("unbounded oluşturuldu"); Console.WriteLine("bounded kapasite 5");
Örnek çözüm:
using System;
using System.Threading.Channels;
class Program
{
static void Main()
{
var unbounded = Channel.CreateUnbounded<string>();
var bounded = Channel.CreateBounded<int>(5);
Console.WriteLine("unbounded oluşturuldu");
Console.WriteLine("bounded kapasite 5");
}
}
Kendini test et
-
Sınırsız kanal oluşturmak için hangi metot kullanılır?
- Channel.CreateUnbounded<T>()
- Channel.New<T>()
- Channel.Open<T>()
- Channel.Make<T>()
Cevabı göster
Channel.CreateUnbounded<T>() — Doğru. CreateUnbounded sınırsız kanal yaratır.
-
CreateUnbounded çağrısını tamamla
var channel = Channel.____;Cevabı göster
var channel = Channel.CreateUnbounded<string>(); -
Kanal fabrikalarını eşleştir
- CreateUnbounded<T>()
- Sınırsız kanal
- CreateBounded<T>(n)
- Sınırlı kanal (n öğe)
- Channel<T>
- Kanalın temel türü