我试着让事情变得简单。这是我的代码:
If Threading.Monitor.TryEnter(syncRoot) Then
Try
'do something
Finally
Threading.Monitor.Exit(syncRoot)
End Try
Else
'do something else
End If
就噪音而言,这甚至比ReaderWriterLock更糟糕。我可以使用C#或VB,所以适用于任何一种的答案都是受欢迎的。
2条答案
按热度按时间c3frrgcw1#
使用代理人?
例如
xytpbqjk2#
这与您的last post非常相似,我希望得到类似的答案,唯一显著的区别是,如果超时失败,您可能会从方法返回“null”,这样就不会调用“Dispose()”,您可以轻松地检查该值:
唯一真实的的问题是,您不一定要向“object”(甚至是“T where T:类”)...
Jon Skeet在过去已经考虑到了这一点-worth a look。