tasks[] = $task; $task->start(); } /** * Create and start a new async task */ public function runAsync(callable $task): AsyncTask { $asyncTask = new AsyncTask($task); $this->addTask($asyncTask); return $asyncTask; } /** * Update all running tasks (call this in your main loop) */ public function update(): void { foreach ($this->tasks as $key => $task) { $task->update(); // Remove completed tasks if ($task->isCompleted()) { unset($this->tasks[$key]); } } } /** * Get count of running tasks */ public function getRunningTaskCount(): int { return count($this->tasks); } /** * Check if any tasks are running */ public function hasRunningTasks(): bool { return count($this->tasks) > 0; } }