在我的.Net应用程序中,我宣布了ReaderWriterLockSlim
:
private readonly ReaderWriterLockSlim m_lock = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
在其他地方,我每100毫秒刷新一些值,所以基本上如果有一次,锁定是不可访问的,这不是什么大不了的事,我只是想退出并等待下一个电话
所以我有以下方法的内容:
if (m_lock.TryEnterUpgradeableReadLock(0)){
..
}
在应用程序中,我目前遇到了死锁(这似乎与当前问题无关),所以我暂停了我的应用程序以检查线程,我发现我不仅仅是在if条件下当前被阻止的20个线程。
这很奇怪,因为the documentation对此非常清楚:
如果millisecondsTimeout为0(零),则此方法检查锁定状态 如果所需状态不可用,则立即返回false。
问题很简单。 WHYYYYYYYYYYYYYYYYYYYYYYYYYYY 我试图在TryEnterUpgradeable
之后设置断点,以便继续,但这不起作用。