我想为c#编译器创建自定义语句以生成try finally块.就像锁定声明一样.
例如
private readonly ReaderWriterLockSlim _lockObject
private void MyMethod()
{
MyWriteLock(lockObject)
{
}
}
private void MyMethod2()
{
MyReadLock(lockObject)
{
}
}
Run Code Online (Sandbox Code Playgroud)
编译器应该为我生成以下代码
private void MyMethod()
{
try
{
lockObject.EnterWriteLock();
.. statetments for the method
}
finally
{
_lockObject.ExitWriteLock();
}
}
private void MyMethod2()
{
try
{
lockObject.EnterReadLock();
.. statetments for the method
}
finally
{
_lockObject.ExitReadLock();
}
}
Run Code Online (Sandbox Code Playgroud)
您无法在C#中创建自己的语句.你最接近try/finally的是一个using声明:
using (lockObject.AcquireReadToken())
{
}
Run Code Online (Sandbox Code Playgroud)
哪里AcquireReadToken()会获得一个读锁定,并返回一个IDisposable锁定处理时释放锁定.
| 归档时间: |
|
| 查看次数: |
980 次 |
| 最近记录: |