Scope::isClosed
(PHP 8.6+, True Async 1.0)
public function isClosed(): bool
检查作用域是否已关闭。作用域在调用 dispose() 或 disposeSafely() 后被视为已关闭。无法向已关闭的作用域添加新的协程。
返回值
bool — 如果作用域已关闭则返回 true,否则返回 false。
示例
示例 #1 检查作用域状态
<?php
use Async\Scope;
$scope = new Scope();
var_dump($scope->isClosed()); // bool(false)
$scope->dispose();
var_dump($scope->isClosed()); // bool(true)
示例 #2 防止向已关闭的作用域添加协程
<?php
use Async\Scope;
$scope = new Scope();
$scope->dispose();
if (!$scope->isClosed()) {
$scope->spawn(function() {
echo "This coroutine will not be created\n";
});
} else {
echo "Scope is already closed\n";
}
参见
- Scope::isFinished — 检查作用域是否已完成
- Scope::isCancelled — 检查作用域是否已取消
- Scope::dispose — 关闭作用域