GeWuYou 56769cbf01 feat(architecture): 添加异步销毁功能支持
- 在 Architecture 中添加对 IAsyncDestroyable 接口的支持
- 将销毁集合类型从 IDestroyable 改为 object 以支持多种销毁接口
- 实现 DestroyAsync 方法提供异步销毁能力
- 保留旧的同步 Destroy 方法用于向后兼容
- 在 StateMachineSystem 中添加异步销毁状态的支持
- 添加 IAsyncDestroyable、IAsyncInitializable 和 IAsyncLifecycle 接口定义
- 更新测试代码以使用新的异步销毁方法
- 在架构销毁时清理依赖注入容器
2026-02-17 18:41:16 +08:00

48 lines
1.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Core.Abstractions.enums;
using GFramework.Core.Abstractions.lifecycle;
using GFramework.Core.model;
namespace GFramework.Core.Tests.model;
/// <summary>
/// 异步测试模型类实现了IModel和IAsyncInitializable接口
/// </summary>
public sealed class AsyncTestModel : AbstractModel, IAsyncInitializable
{
/// <summary>
/// 获取模型是否已初始化的标志
/// </summary>
public bool Initialized { get; private set; }
/// <summary>
/// 异步初始化方法,模拟异步初始化过程
/// </summary>
/// <returns>表示异步操作的Task</returns>
public async Task InitializeAsync()
{
await Task.Delay(10);
Initialized = true;
}
/// <summary>
/// 同步初始化方法,该方法不应该被调用
/// </summary>
/// <exception cref="InvalidOperationException">当该方法被调用时抛出异常</exception>
public void Init()
{
// sync Init 不应该被调用
throw new InvalidOperationException("Sync Init should not be called");
}
/// <summary>
/// 处理架构阶段事件
/// </summary>
/// <param name="phase">架构阶段枚举值</param>
public override void OnArchitecturePhase(ArchitecturePhase phase)
{
}
protected override void OnInit()
{
}
}