Учитывая токен отмены, я хотел бы создать из него ожидаемую задачу, которая никогда не будет полной, но может быть отменена. Мне это нужно для шаблона, как это, что ИМО должна быть довольно распространенным явлением:Задача от токена отмены?
async Task DoStuff(Task t, CancellationToken ct)
{
// t was made from TaskCompletionSource,
// both t and ct are beyond my control
Task t2 = TaskFromCancellationToken(ct);
await Task.WhenAny(t, t2);
// do stuff
}
Лучшая идея у меня до сих пор это:
Task TaskFromCancelationToken(CancellationToken ct)
{
return Task.Delay(Timeout.Infinite, ct);
}
Есть ли лучший способ сделать это логика случается?
Пересмотр этого, .NET 4.6 имеет ['Task.FromCanceled'] (https://msdn.microsoft.com/en-us/library/system.threading.tasks.task.fromcanceled (v = vs.110) .aspx). – Noseratio