• 30.3 FCL中的混合构造


     30.3.2 Monitor类和同步块

        internal sealed class Transaction
        {
            private readonly object _lock = new object();
            private DateTime _timeOfLastTrans;
    
            public void PerformTransaction()
            {
                Monitor.Enter(_lock);
                //数据拥有对数据的独占访问权 
                _timeOfLastTrans = DateTime.Now;
                Monitor.Exit(_lock);
            }
    
            public DateTime LastTransaction
            {
                get
                {
                    Monitor.Enter(_lock);
                    //数据拥有对数据的独占访问权
                    DateTime temp = _timeOfLastTrans;
                    Monitor.Exit(_lock);
                    return temp;
                }
            }
        }

     30.3.3 ReaderWriterLockSlim类

        internal sealed class Transaction : IDisposable
        {
            private readonly ReaderWriterLockSlim _lock = new ReaderWriterLockSlim(LockRecursionPolicy.NoRecursion);
            private DateTime _timeOfLastTrans;
    
            public void PerformTransaction()
            {
                _lock.EnterWriteLock();
                //数据拥有对数据的独占访问权 
                _timeOfLastTrans = DateTime.Now;
                _lock.ExitWriteLock();
            }
    
            public DateTime LastTransaction
            {
                get
                {
                    _lock.EnterReadLock();
                    //数据拥有对数据的独占访问权
                    DateTime temp = _timeOfLastTrans;
                    _lock.ExitReadLock();
                    return temp;
                }
            }
    
            public void Dispose()
            {
                _lock.Dispose();
            }
        }
  • 相关阅读:
    盒子模型中问题
    outline
    高度自动相等方法
    正则表达式
    绝对定位 相对定位
    replace 使用函数作为第二参数
    float 浮动
    line-height 行高
    元素隐藏
    现代浏览器内部
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/10229360.html
Copyright © 2020-2023  润新知