CodeBlanks Logo Icon CodeBlanks

Channel.Create

C# kursu · Uzman · Ders 31/47

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

  1. 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.

  2. CreateUnbounded çağrısını tamamla

    var channel = Channel.____;
    Cevabı göster
    var channel = Channel.CreateUnbounded<string>();
  3. 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ü

Uzman bölümündeki tüm dersler