diff --git a/GFramework.Game/storage/FileStorage.cs b/GFramework.Game/storage/FileStorage.cs
index 20dd397..5b983fb 100644
--- a/GFramework.Game/storage/FileStorage.cs
+++ b/GFramework.Game/storage/FileStorage.cs
@@ -89,21 +89,32 @@ public sealed class FileStorage : IFileStorage
///
/// 删除指定键的存储项
///
- /// 存储键
+ /// 存储键,用于标识要删除的存储项
public void Delete(string key)
{
+ // 将键转换为文件路径
var path = ToPath(key);
+
+ // 获取或创建与路径关联的锁对象,确保线程安全
var keyLock = _keyLocks.GetOrAdd(path, _ => new object());
+ // 使用锁确保同一时间只有一个线程操作该路径的文件
lock (keyLock)
{
+ // 如果文件存在,则删除该文件
if (File.Exists(path))
File.Delete(path);
}
}
+ ///
+ /// 异步删除指定键的存储项
+ ///
+ /// 存储键,用于标识要删除的存储项
+ /// 表示异步操作的任务
public Task DeleteAsync(string key)
{
+ // 在线程池中运行同步删除方法以实现异步操作
return Task.Run(() => Delete(key));
}