wanshenmean
2026-03-13 0638edbbbb5b6a3aa09f5272ce879b1bf3903dee
Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Memory/MemoryRegion.cs
@@ -19,6 +19,11 @@
        protected readonly ReaderWriterLockSlim _lock;
        /// <summary>
        /// 释放状态标志
        /// </summary>
        protected bool _disposed = false;
        /// <summary>
        /// 区域类型
        /// </summary>
        public abstract string RegionType { get; }
@@ -36,7 +41,7 @@
        {
            Size = size;
            _memory = new byte[size];
            _lock = new ReaderWriterLockSlim();
            _lock = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
        }
        /// <summary>
@@ -66,6 +71,9 @@
        /// </summary>
        public virtual void Write(ushort offset, byte[] data)
        {
            if (data == null)
                throw new ArgumentNullException(nameof(data));
            _lock.EnterWriteLock();
            try
            {
@@ -100,9 +108,26 @@
        /// <summary>
        /// 释放资源
        /// </summary>
        public virtual void Dispose()
        public void Dispose()
        {
            _lock?.Dispose();
            Dispose(true);
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// 释放资源
        /// </summary>
        /// <param name="disposing">是否正在释放托管资源</param>
        protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    _lock?.Dispose();
                }
                _disposed = true;
            }
        }
    }
}