Dispose у CancellationTokenSource
Dispose у
CancellationTokenSource
закрывает источник. После этого
Cancel
бросает ObjectDisposedException.
Токен из
Token
можно проверять, но источник больше не управляют.
Синтаксис
cts.Dispose();
Пример
Давайте вызвать Cancel после Dispose:
using System;
using System.Threading;
class Program
{
static void Main()
{
CancellationTokenSource cts = new CancellationTokenSource();
cts.Dispose();
try
{
cts.Cancel();
}
catch (ObjectDisposedException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте закрыть источник после отмены:
using System;
using System.Threading;
class Program
{
static void Main()
{
CancellationTokenSource cts = new CancellationTokenSource();
cts.Cancel();
cts.Dispose();
Console.WriteLine(cts.Token.IsCancellationRequested);
}
}
Результат выполнения кода:
True
Пример
Давайте закрыть связанный источник:
using System;
using System.Threading;
class Program
{
static void Main()
{
CancellationTokenSource a = new CancellationTokenSource();
CancellationTokenSource linked =
CancellationTokenSource.CreateLinkedTokenSource(a.Token);
linked.Dispose();
bool res = a.Token.CanBeCanceled;
Console.WriteLine(res);
a.Dispose();
}
}
Результат выполнения кода:
True
Смотрите также
-
Cancel,
до закрытия источника -
CancelAfter,
таймер у источника -
CreateLinkedTokenSource,
связанный источник -
CancellationToken,
признак после закрытия