ReaderWriterLockSlim.TryEnterUpgradeableReadLock(0)阻止

时间:2015-06-19 12:04:34

标签: c# multithreading concurrency locking readerwriterlockslim

在我的.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之后设置断点,以便继续,但这不起作用。

0 个答案:

没有答案