Files
2026-10-27 14:35:03 +08:00

16 lines
413 B
C#

namespace Store.Management.Framework.Utilities;
/// <summary>在释放时执行一次清理操作,可安全地重复或并发释放。</summary>
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();
}