diff --git a/GFramework.Core/architecture/Architecture.cs b/GFramework.Core/architecture/Architecture.cs
index 25ab46a..ba1f269 100644
--- a/GFramework.Core/architecture/Architecture.cs
+++ b/GFramework.Core/architecture/Architecture.cs
@@ -86,7 +86,9 @@ public abstract class Architecture(
#endregion
#region Fields
+ private readonly TaskCompletionSource _readyTcs = new(TaskCreationOptions.RunContinuationsAsynchronously);
+ public bool IsReady => CurrentPhase == ArchitecturePhase.Ready;
///
/// 待初始化组件的去重集合
///
@@ -553,9 +555,18 @@ public abstract class Architecture(
_mInitialized = true;
EnterPhase(ArchitecturePhase.Ready);
-
+ // 🔥 释放 Ready await
+ _readyTcs.TrySetResult();
+
_logger.Info($"Architecture {GetType().Name} is ready - all components initialized");
}
-
+
+ ///
+ /// 等待架构初始化完成(Ready 阶段)
+ ///
+ public Task WaitUntilReadyAsync()
+ {
+ return IsReady ? Task.CompletedTask : _readyTcs.Task;
+ }
#endregion
}
\ No newline at end of file