TaskSet::cancel
(PHP 8.6+, True Async 1.0)
public TaskSet::cancel(?Async\AsyncCancellation $cancellation = null): void
Отменяет все работающие корутины и сбрасывает очередь задач.
Неявно вызывает seal().
Параметры
- cancellation
- Причина отмены. Если
null, создаётся стандартныйAsyncCancellation.
Примеры
Пример #1 Отмена по условию
<?php
use Async\TaskSet;
spawn(function() {
$set = new TaskSet();
$set->spawn(fn() => longRunningTask1());
$set->spawn(fn() => longRunningTask2());
// Отменяем все задачи
$set->cancel();
echo $set->isSealed() ? "запечатан\n" : "нет\n"; // "запечатан"
});
См. также
- TaskSet::seal — Запечатать набор
- TaskSet::dispose — Уничтожить scope набора