本文整理汇总了C#中System.Threading.ReaderWriterLockSlim.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# ReaderWriterLockSlim.Dispose方法的具体用法?C# ReaderWriterLockSlim.Dispose怎么用?C# ReaderWriterLockSlim.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Threading.ReaderWriterLockSlim
的用法示例。
在下文中一共展示了ReaderWriterLockSlim.Dispose方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Dispose_Errors
public void Dispose_Errors()
{
var v = new ReaderWriterLockSlim();
v.Dispose();
try
{
v.EnterUpgradeableReadLock();
Assert.Fail("1");
}
catch (ObjectDisposedException)
{
}
try
{
v.EnterReadLock();
Assert.Fail("2");
}
catch (ObjectDisposedException)
{
}
try
{
v.EnterWriteLock();
Assert.Fail("3");
}
catch (ObjectDisposedException)
{
}
}
示例2: ExitsWriteLock
public void ExitsWriteLock()
{
var slim = new ReaderWriterLockSlim();
var token = slim.Read();
token.Dispose();
Assert.IsFalse(slim.IsReadLockHeld);
slim.Dispose();
}
示例3: EntersWriteLock
public void EntersWriteLock()
{
var slim = new ReaderWriterLockSlim();
var token = slim.Write();
Assert.IsTrue(slim.IsWriteLockHeld);
slim.ExitWriteLock();
slim.Dispose();
}
示例4: Dispose
public static void Dispose()
{
ReaderWriterLockSlim rwls;
rwls = new ReaderWriterLockSlim();
rwls.Dispose();
Assert.Throws<ObjectDisposedException>(() => rwls.TryEnterReadLock(0));
Assert.Throws<ObjectDisposedException>(() => rwls.TryEnterUpgradeableReadLock(0));
Assert.Throws<ObjectDisposedException>(() => rwls.TryEnterWriteLock(0));
rwls.Dispose();
for (int i = 0; i < 3; i++)
{
rwls = new ReaderWriterLockSlim();
switch (i)
{
case 0: rwls.EnterReadLock(); break;
case 1: rwls.EnterUpgradeableReadLock(); break;
case 2: rwls.EnterWriteLock(); break;
}
Assert.Throws<SynchronizationLockException>(() => rwls.Dispose());
}
}
示例5: CantAqureLock
public void CantAqureLock()
{
var l = new ReaderWriterLockSlim();
var e = new AutoResetEvent(false);
var t = new Thread(() =>
{
var b =l.TryEnterWriteLock(TimeSpan.FromSeconds(1));
Assert.IsTrue(b);
e.Set();
Thread.Sleep(TimeSpan.FromMinutes(10));
l.Dispose();
});
t.Start();
e.WaitOne();
var a = new DisposableReaderWriterLockSlim(l, TimeSpan.FromSeconds(3), SlimLockMode.Write);
}
示例6: Dispose_UpgradeableReadLock
public void Dispose_UpgradeableReadLock()
{
var rwl = new ReaderWriterLockSlim();
rwl.EnterUpgradeableReadLock();
try
{
rwl.Dispose();
Assert.Fail("1");
}
catch (SynchronizationLockException)
{
}
}