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();
            }
        }
  • 相关阅读:
    5个有趣且不必要的 JavaScipt 技巧
    动态规划的原理?
    如何避免出现failfast?
    动态规划的原理?
    jsp文件导包
    程序突击
    monthly report
    weekly review: 细节决定一切
    weekly review
    祸从口入祸从口出
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/10229360.html
Copyright © 2011-2022 走看看