TaskSet::cancel
(PHP 8.6+, True Async 1.0)
php
public TaskSet::cancel(?Async\AsyncCancellation $cancellation = null): voidОтменяет все работающие корутины и сбрасывает очередь задач. Неявно вызывает seal().
Параметры
cancellation : Причина отмены. Если null, создаётся стандартный AsyncCancellation.
Примеры
Пример #1 Отмена по условию
php
<?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 набора