TaskSet::close
(PHP 8.6+, True Async 1.0)
php
public TaskSet::close(): void关闭任务集合。此后 spawn() 与 spawnWithKey() 都会抛出异常。 已经在跑的协程和排队中的任务继续执行。
重复调用是 no-op。
示例
示例 #1 基本用法
php
<?php
use Async\TaskSet;
spawn(function() {
$set = new TaskSet();
$set->spawn(fn() => "task");
$set->close();
try {
$set->spawn(fn() => "another task");
} catch (\Async\AsyncException $e) {
echo $e->getMessage() . "\n";
// "Cannot spawn tasks on a closed TaskGroup"
}
});参见
- TaskSet::cancel --- 取消所有任务(隐式 close)
- TaskSet::isClosed --- 检查任务集合是否已关闭