手机
当前位置:查字典教程网 >编程开发 >C#教程 >共享锁using范围的实现方法
共享锁using范围的实现方法
摘要:复制代码代码如下:///共享锁publicclassShareLock{ReaderWriterLockLock;IDisposablere...

复制代码 代码如下:

/// <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); }

}

}

【共享锁using范围的实现方法】相关文章:

关于c#二叉树的实现

解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法

C# Linq读取XML文件的实例

C#中using的三种用法

TextBox获取输入焦点时自动全选的实现方法

c#之利用API函数实现动画窗体的方法详解

将字符串转换成System.Drawing.Color类型的方法

C#操作注册表的方法

c# 共享状态的文件读写实现代码

C# 向二进制文件进行读写的操作方法

精品推荐
分类导航