zoukankan      html  css  js  c++  java
  • 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();
            }
        }
  • 相关阅读:
    Distributed System
    APP专项测试之兼容性测试
    面试如何正确谈薪?
    跳槽季,如何做好技术面试准备?
    Appium基础
    设置安装程序位置
    获取文件版本号
    28-PV&PVC
    Docker-文件拷贝
    Kubemark压测常用命令
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/10229360.html
Copyright © 2011-2022 走看看