24 Temmuz 2016 Pazar

CancellationTokenSource Sınıfı

Giriş
Şu satırı dahil ederiz.
using System.Threading;
Threadler arasında iptal/durdurma istekleri için kullanılır. CancellationToken sınıfı ile yakından ilişkilidir.

Genel Kullanım Şekli
Şöyle yaparız
var cts = new CancellationTokenSource(3000); // Set timeout

Task.Run(() =>
{
    while (!cts.Token.IsCancellationRequested)
    {
        // Doing Work...
    }

}, cts.Token);
Constructor - Default
Şöyle yaparız.
CancellationTokenSource cts = new CancellationTokenSource();
Constructor - Zaman
Şöyle yaparız.
var cts = new CancellationTokenSource(3000); // Set timeout
Şöyle yaparız.
var cts = new CancellationTokenSource(TimeSpan.FromMinutes(30));
Cancel metodu
İptal işlemi için çağrılır. Şöyle yaparız.
cts.Cancel();
İptal işlemi bir kere yapılabiliyor. Açıklaması şöyle.
After the IsCancellationRequested property of the token has been set to true, it cannot be reset to false. Therefore, cancellation tokens cannot be reused after they have been canceled.
CancelAfter metodu
Şöyle yaparız.
cts.CancelAfter(1000); // in milliseconds
Token Alanı
Nesne içinde bir CancellationToken içerir. Bu iki sınıf beraber kullanılır. Niçin iki sınıf olarak tasarlandıkları burada açıklanmış. Şöyle yaparız.
CancellationToken token = cts.Token;

Hiç yorum yok:

Yorum Gönder