本文整理汇总了VB.NET中System.Threading.LockRecursionPolicy枚举的典型用法代码示例。如果您正苦于以下问题:VB.NET LockRecursionPolicy枚举的具体用法?VB.NET LockRecursionPolicy怎么用?VB.NET LockRecursionPolicy使用的例子?那么恭喜您, 这里精选的枚举代码示例或许可以为您提供帮助。
在下文中一共展示了LockRecursionPolicy枚举的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的VB.NET代码示例。
示例1: Example
' 导入命名空间
Imports System.Threading
Class Example
' By default, the lock recursion policy for a new
' ReaderWriterLockSlim does not allow recursion.
Private Shared rwls As New ReaderWriterLockSlim()
Private Shared rwlsWithRecursion _
As New ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion)
Shared Sub ThreadProc()
Console.WriteLine("1. Enter the read lock recursively.")
ReadRecursive(rwls)
ReadRecursive(rwlsWithRecursion)
Console.WriteLine(vbCrLf & _
"2. Enter the write lock recursively from the read lock.")
ReadWriteRecursive(rwls)
ReadWriteRecursive(rwlsWithRecursion)
End Sub
Shared Sub ReadRecursive(ByVal rwls As ReaderWriterLockSlim)
Console.WriteLine("LockRecursionPolicy.{0}:", rwls.RecursionPolicy)
rwls.EnterReadLock()
Try
rwls.EnterReadLock()
Console.WriteLine(vbTab & _
"The read lock was entered recursively.")
rwls.ExitReadLock()
Catch lre As LockRecursionException
Console.WriteLine(vbTab & "{0}: {1}", _
lre.GetType().Name, lre.Message)
End Try
rwls.ExitReadLock()
End Sub
Shared Sub ReadWriteRecursive(ByVal rwls As ReaderWriterLockSlim)
Console.WriteLine("LockRecursionPolicy.{0}:", rwls.RecursionPolicy)
rwls.EnterReadLock()
Try
rwls.EnterWriteLock()
Console.WriteLine(vbTab & _
"The write lock was entered recursively.")
Catch lre As LockRecursionException
Console.WriteLine(vbTab & "{0}: {1}", _
lre.GetType().Name, lre.Message)
End Try
rwls.ExitReadLock()
End Sub
Shared Sub Main()
Dim t As New Thread(AddressOf ThreadProc)
t.Start()
t.Join()
' Dispose of ReaderWriterLockSlim objects' unmanaged resources.
If rwls IsNot Nothing Then rwls.Dispose()
If rwlsWithRecursion IsNot Nothing Then _
rwlsWithRecursion.Dispose()
End Sub
End Class
开发者ID:VB.NET开发者,项目名称:System.Threading,代码行数:70,代码来源:LockRecursionPolicy 输出:
1. Enter the read lock recursively.
LockRecursionPolicy.NoRecursion:
LockRecursionException: Recursive read lock acquisitions not allowed in this mode.
LockRecursionPolicy.SupportsRecursion:
The read lock was entered recursively.
2. Enter the write lock recursively from the read lock.
LockRecursionPolicy.NoRecursion:
LockRecursionException: Write lock may not be acquired with read lock held. This pattern is prone to deadlocks. Consider using the upgrade lock.
LockRecursionPolicy.SupportsRecursion:
LockRecursionException: Write lock may not be acquired with read lock held. This pattern is prone to deadlocks. Consider using the upgrade lock.
注:本文中的System.Threading.LockRecursionPolicy枚举示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论