2009-09-21 52 views
3

我正在使用ReaderWriterLockSlim來保護對我的ASP.NET應用程序上的緩存的訪問。 MSDN有使用鎖的示例。然而這篇文章http://www.nobletech.co.uk/Articles/ReaderWriterLockMgr.aspx讓我擔心死鎖。這真的有風險嗎? MSDN文檔應該提到這一點嗎?ReaderWriterLockSlim的MSDN示例用法是否包含死鎖風險?

public string Read(int key) 
{ 
    cacheLock.EnterReadLock(); 
    // What if thread abort happens here before getting into the try block?! 
    try 
    { 
     return innerCache[key]; 
    } 
    finally 
    { 
     cacheLock.ExitReadLock(); 
    } 
} 

回答

2

對不起,我錯過了早期閱讀,

難道這個屬性不指定?

[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)] 
+0

所以我需要彌補潛在的中止(在我的ASP.NET應用程序的情況下)?什麼是最安全的方式來做到這一點? – 2009-09-21 14:32:03

+0

您提供的參考文章看起來非常穩固。本文還擴展了功能http://vijay.screamingpens.com/archive/2008/08/08/readerwriterlockslim-extension-methods.aspx – 2009-09-21 15:04:19