namespace Store.Management.Framework.Utilities; /// 在释放时执行一次清理操作,可安全地重复或并发释放。 public sealed class DisposeAction : IDisposable { private Action? _action; public DisposeAction(Action action) { ArgumentNullException.ThrowIfNull(action); _action = action; } public void Dispose() => Interlocked.Exchange(ref _action, null)?.Invoke(); }