亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

共享鎖using范圍的實現(xiàn)方法

 更新時間:2013年04月04日 22:18:35   作者:  
共享鎖using范圍的實現(xiàn)方法,需要的朋友可以參考一下

復(fù)制代碼 代碼如下:

/// <summary>共享鎖</summary>
public class ShareLock
{
    ReaderWriterLock Lock;
    IDisposable readLock, writeLock;

    public IDisposable ReadLock { get { Lock.AcquireReaderLock(-1); return readLock; } }
    public IDisposable WriteLock { get { Lock.AcquireWriterLock(-1); return writeLock; } }
    public IDisposable UpgradeLock { get { return new UpgraderLocked(Lock); } }
    /// <summary>釋放所有鎖</summary>
    public void ReleaseLock() { Lock.ReleaseLock(); }

    public ShareLock()
    {
        this.Lock = new ReaderWriterLock();
        this.readLock = new Locked(Lock.ReleaseReaderLock);
        this.writeLock = new Locked(Lock.ReleaseWriterLock);
    }
    class Locked : IDisposable
    {
        ThreadStart ReleaseLock;
        public Locked(ThreadStart ReleaseLock) { this.ReleaseLock = ReleaseLock; }
        public void Dispose() { this.ReleaseLock(); }
    }
    class UpgraderLocked : IDisposable
    {
        delegate void ReleaseLockHandler(ref LockCookie lockCookie);

        ReleaseLockHandler ReleaseLock;
        LockCookie Cookie;
        public UpgraderLocked(ReaderWriterLock locker)
        {
            Cookie = locker.UpgradeToWriterLock(-1);
            this.ReleaseLock = locker.DowngradeFromWriterLock;
        }
        public void Dispose() { this.ReleaseLock(ref Cookie); }
    }
}

相關(guān)文章

  • c#中合并DataTable重復(fù)行的值

    c#中合并DataTable重復(fù)行的值

    c#中合并DataTable重復(fù)行的值,需要的朋友可以參考一下
    2013-05-05
  • 基于C#實現(xiàn)屏幕取色器

    基于C#實現(xiàn)屏幕取色器

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)簡易的屏幕取色器,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • C#.Net ArrayList的使用方法

    C#.Net ArrayList的使用方法

    這篇文章主要介紹了C#.Net ArrayList的使用方法,使用動態(tài)數(shù)組的優(yōu)點是可以根據(jù)用戶需要,有效利用存儲空間,需要的朋友可以參考下
    2015-10-10
  • c++與c#的時間轉(zhuǎn)換示例分享

    c++與c#的時間轉(zhuǎn)換示例分享

    這篇文章主要介紹了C++與C#的時間轉(zhuǎn)換方法,大家參考使用吧
    2013-12-12
  • 基于Kubernetes實現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)

    基于Kubernetes實現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)

    這篇文章主要介紹了基于Kubernetes實現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • 使用C#實現(xiàn)數(shù)據(jù)結(jié)構(gòu)堆的代碼

    使用C#實現(xiàn)數(shù)據(jù)結(jié)構(gòu)堆的代碼

    這篇文章主要介紹了使用C#實現(xiàn)數(shù)據(jù)結(jié)構(gòu)堆,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • C# 如何調(diào)用SAP RFC

    C# 如何調(diào)用SAP RFC

    這篇文章主要介紹了C# 如何調(diào)用SAP RFC,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • C#實現(xiàn)UI控件輸出日志的方法詳解

    C#實現(xiàn)UI控件輸出日志的方法詳解

    一般情況下,我們的日志文件是用來記錄一些關(guān)鍵操作或者異常,并且是后臺存儲,并不對外開放的,但是也有些時候,需要將一些操作步驟、記錄等直接顯示在窗體上。本文就將利用UI控件輸出日志效果,需要的可以參考一下
    2022-10-10
  • VSCode調(diào)試C#程序及附缺失.dll文件的解決辦法

    VSCode調(diào)試C#程序及附缺失.dll文件的解決辦法

    這篇文章主要介紹了VSCode調(diào)試C#程序及附缺失.dll文件的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • c#使用EPPlus封裝excel表格導(dǎo)入功能的問題

    c#使用EPPlus封裝excel表格導(dǎo)入功能的問題

    這篇文章主要介紹了c#使用EPPlus封裝excel表格導(dǎo)入功能的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04

最新評論