diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 4107d5b..1802de8 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -45,10 +45,7 @@ jobs:
uses: github/codeql-action/init@v4
with:
languages: csharp
- build-mode: manual
- # 手动构建项目
- - name: Build
- run: dotnet build -c Release
+ build-mode: autobuild
# 执行CodeQL代码分析
# 运行静态分析并生成结果报告
diff --git a/GFramework.Core/architecture/Architecture.cs b/GFramework.Core/architecture/Architecture.cs
index ab5f89e..e045b81 100644
--- a/GFramework.Core/architecture/Architecture.cs
+++ b/GFramework.Core/architecture/Architecture.cs
@@ -85,10 +85,15 @@ public abstract class Architecture(
private readonly TaskCompletionSource _readyTcs = new(TaskCreationOptions.RunContinuationsAsynchronously);
+ ///
+ /// 获取一个布尔值,指示当前架构是否处于就绪状态。
+ /// 当前架构的阶段等于 ArchitecturePhase.Ready 时返回 true,否则返回 false。
+ ///
public bool IsReady => CurrentPhase == ArchitecturePhase.Ready;
///
- /// 待初始化组件的去重集合
+ /// 待初始化组件的去重集合。
+ /// 用于存储需要初始化的组件实例,确保每个组件仅被初始化一次。
///
private readonly HashSet _pendingInitializableSet = [];
diff --git a/GFramework.Core/coroutine/CoroutineScheduler.cs b/GFramework.Core/coroutine/CoroutineScheduler.cs
index 41c3a58..83b4b9c 100644
--- a/GFramework.Core/coroutine/CoroutineScheduler.cs
+++ b/GFramework.Core/coroutine/CoroutineScheduler.cs
@@ -32,11 +32,18 @@ public sealed class CoroutineScheduler(
///
public int ActiveCoroutineCount { get; private set; }
+ ///
+ /// 检查指定的协程句柄是否仍然存活
+ ///
+ /// 要检查的协程句柄
+ /// 如果协程仍然存活则返回 true,否则返回 false
public bool IsCoroutineAlive(CoroutineHandle handle)
{
+ // 检查元数据字典中是否包含指定的协程句柄
return _metadata.ContainsKey(handle);
}
+
#region Run / Update
///
diff --git a/GFramework.Core/coroutine/instructions/WaitForEvent.cs b/GFramework.Core/coroutine/instructions/WaitForEvent.cs
index c84d244..1c15fab 100644
--- a/GFramework.Core/coroutine/instructions/WaitForEvent.cs
+++ b/GFramework.Core/coroutine/instructions/WaitForEvent.cs
@@ -15,7 +15,11 @@ using GFramework.Core.Abstractions.coroutine;
using GFramework.Core.Abstractions.events;
namespace GFramework.Core.coroutine.instructions;
-
+///
+/// WaitForEvent 类用于等待特定事件的发生,并提供事件数据和完成状态。
+/// 实现了 IYieldInstruction 和 IDisposable 接口,支持协程等待和资源释放。
+///
+/// 事件类型
public sealed class WaitForEvent : IYieldInstruction, IDisposable
{
private bool _disposed;
@@ -23,60 +27,60 @@ public sealed class WaitForEvent : IYieldInstruction, IDisposable
private IUnRegister? _unRegister;
///
- /// 初始化等待事件的指令
+ /// 初始化 WaitForEvent 实例,注册事件监听器以等待指定事件。
///
- /// 事件总线实例
+ /// 事件总线实例,用于注册和监听事件。
+ /// 当 eventBus 为 null 时抛出异常。
public WaitForEvent(IEventBus eventBus)
{
var eventBus1 = eventBus ?? throw new ArgumentNullException(nameof(eventBus));
- // 注册事件监听器
+ // 注册事件监听器,当事件触发时调用 OnEventTriggered 方法
_unRegister = eventBus1.Register(OnEventTriggered);
}
///
- /// 获取接收到的事件数据
+ /// 获取接收到的事件数据。仅在事件触发后可用。
///
public TEvent? EventData { get; private set; }
///
- /// 释放资源
+ /// 释放 WaitForEvent 实例占用的资源,包括注销事件监听器。
///
public void Dispose()
{
if (_disposed) return;
- // 注销事件注册并清理资源
+ // 注销事件注册并清理资源,防止内存泄漏
_unRegister?.UnRegister();
_unRegister = null;
_disposed = true;
}
///
- /// 获取等待是否已完成
+ /// 获取等待是否已完成。当事件触发后,此属性将返回 true。
///
public bool IsDone => _done;
///
- /// 更新方法,用于处理时间更新逻辑
+ /// 更新方法,用于处理时间更新逻辑。通常由协程系统调用。
///
- /// 时间增量
+ /// 时间增量(秒),表示自上次更新以来经过的时间。
public void Update(double deltaTime)
{
- // 事件的完成由事件回调设置
- // 如果已完成,确保注销事件监听器
+ // 如果事件已完成且事件监听器仍存在,则注销监听器以释放资源
if (!_done || _unRegister == null) return;
_unRegister.UnRegister();
_unRegister = null;
}
///
- /// 事件触发时的回调处理
+ /// 事件触发时的回调处理方法。设置事件数据并标记等待完成。
///
- /// 事件数据
+ /// 触发事件时传递的数据。
private void OnEventTriggered(TEvent eventData)
{
EventData = eventData;
_done = true;
}
-}
\ No newline at end of file
+}
diff --git a/GFramework.Core/environment/EnvironmentBase.cs b/GFramework.Core/environment/EnvironmentBase.cs
index 826037e..e4ed852 100644
--- a/GFramework.Core/environment/EnvironmentBase.cs
+++ b/GFramework.Core/environment/EnvironmentBase.cs
@@ -69,15 +69,19 @@ public abstract class EnvironmentBase : ContextAwareBase, IEnvironment
Register(key, value);
}
+ ///
+ /// 抽象方法,用于初始化操作。具体实现由派生类提供。
+ ///
public abstract void Initialize();
///
/// 注册键值对到环境值字典中
///
- /// 要注册的键
- /// 要注册的值
+ /// 要注册的键,作为字典中的唯一标识符
+ /// 要注册的值,与键关联的数据
protected void Register(string key, object value)
{
+ // 将键值对添加到Values字典中
Values[key] = value;
}
}
\ No newline at end of file
diff --git a/GFramework.Core/ioc/IocContainer.cs b/GFramework.Core/ioc/IocContainer.cs
index aecfb4e..3e1ef5e 100644
--- a/GFramework.Core/ioc/IocContainer.cs
+++ b/GFramework.Core/ioc/IocContainer.cs
@@ -53,12 +53,17 @@ public class IocContainer : ContextAwareBase, IIocContainer
#region Register
+ ///
+ /// 当上下文准备就绪时调用此方法,用于初始化日志记录器。
+ ///
protected override void OnContextReady()
{
+ // 创建日志记录器实例,并将其赋值给_logger字段
_logger =
LoggerFactoryResolver.Provider.CreateLogger(nameof(IocContainer));
}
+
///
/// 注册单例
/// 一个类型只允许一个实例
diff --git a/GFramework.Core/utility/AbstractContextUtility.cs b/GFramework.Core/utility/AbstractContextUtility.cs
index 5e64b6e..f694643 100644
--- a/GFramework.Core/utility/AbstractContextUtility.cs
+++ b/GFramework.Core/utility/AbstractContextUtility.cs
@@ -11,6 +11,9 @@ namespace GFramework.Core.utility;
///
public abstract class AbstractContextUtility : ContextAwareBase, IContextUtility
{
+ ///
+ /// 日志记录器
+ ///
protected ILogger Logger = null !;
///