TaskCompletionSource — это утилита, которая даёт ручное управление завершением задачи в асинхронных операциях. Она позволяет разработчикам программно устанавливать результат задачи вместо того, чтобы полагаться на автоматическое завершение.
Главная цель TaskCompletionSource — связывать асинхронные паттерны. Она даёт возможность напрямую управлять состоянием задачи, устанавливая:
TaskCompletionSource особенно полезна, когда ты интегрируешь асинхронный код с внешними механизмами, которые не поддерживают Task-based Asynchronous Pattern (TAP) в стандартном виде. Это включает:
var tcs = new TaskCompletionSource<int>();
tcs.SetResult(42);
Task<int> task = tcs.Task;
Вместо того чтобы ждать естественного завершения операции, TaskCompletionSource даёт разработчикам явное управление над тем, когда и как задача переходит в завершённое состояние. Эта гибкость делает её незаменимым инструментом для продвинутых асинхронных сценариев, требующих кастомной логики завершения.
TaskCompletionSource позволяет разработчикам вручную установить результат задачи, исключение или состояние отмены без ожидания естественного завершения операции.
Новый — ещё не проверен сообществом
Вы