Sobes.tech
Junior — Middle

Πώς μπορείτε να χρησιμοποιήσετε το CancellationToken για να ακυρώσετε ασύγχρονες λειτουργίες στο έργο σας;

sobes.tech AI

Απάντηση από AI

Το CancellationToken στη C# χρησιμοποιείται για την ακύρωση ασύγχρονων λειτουργιών, επιτρέποντας την σωστή διακοπή μιας εργασίας κατόπιν αιτήματος.

Στο έργο, μπορείτε να περάσετε το CancellationToken σε μεθόδους που υποστηρίζουν ακύρωση και να ελέγχετε την κατάσταση του μέσα στον ασύγχρονο κώδικα. Αν το token σήμανε ακύρωση, η λειτουργία πρέπει να τερματίσει πρόωρα, απελευθερώνοντας πόρους.

Παράδειγμα χρήσης:

public async Task LoadDataAsync(CancellationToken cancellationToken)
{
    for (int i = 0; i < 10; i++)
    {
        cancellationToken.ThrowIfCancellationRequested();
        await Task.Delay(1000); // προσομοίωση εργασίας
    }
}

// Κλήση με δυνατότητα ακύρωσης
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);

// Ακύρωση μετά από 3 δευτερόλεπτα
cts.CancelAfter(3000);

try
{
    await task;
}
catch (OperationCanceledException)
{
    Console.WriteLine("Η λειτουργία ακυρώθηκε");
}

Αυτή η προσέγγιση επιτρέπει την ευέλικτη διαχείριση του χρόνου εκτέλεσης των ασύγχρονων εργασιών και βελτιώνει την ανταπόκριση της εφαρμογής.