Skip to content

Instantly share code, notes, and snippets.

@sirojiddin0198
Last active July 16, 2025 06:23
Show Gist options
  • Select an option

  • Save sirojiddin0198/a1f6cd8c4989f399fd6352d252dae4db to your computer and use it in GitHub Desktop.

Select an option

Save sirojiddin0198/a1f6cd8c4989f399fd6352d252dae4db to your computer and use it in GitHub Desktop.
CancellationToken haqida

CancellationToken haqida

CancellationToken – bu asinxron yoki ko‘p oqimli (multithreaded) dasturda biror jarayonni foydalanuvchi xohishiga ko‘ra bekor qilish uchun ishlatiladi.

🛠 Foydalanish holatlari:

  • Fayl yuklash yoki og‘ir hisoblash vazifalarini to‘xtatish.
  • Serverga yuborilgan so‘rovni bekor qilish.
  • Har qanday uzoq davom etadigan ish jarayonlarini nazorat qilish.

💡 Misol: foydalanuvchi tugma bosgunga qadar ish davom etadi

var cts = new CancellationTokenSource();
CancellationToken token = cts.Token;

Task key = Task.Run(() =>
{
    Console.ReadKey();
    cts.Cancel();
});

Console.WriteLine("Dastur ishga tushdi");

bool result = await IshBajarilmoqda(token);

Console.WriteLine("Ish tugatildi");

static async Task<bool> IshBajarilmoqda(CancellationToken token)
{
    int i = 1;

    while (true)
    {
        if (token.IsCancellationRequested)
        {
            return false;
        }

        Console.WriteLine($"{i++} - ish davom etmoqda");
        await Task.Delay(1000);
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment