檢測到LoaderLock」的解決辦法(新辦法,在vs2008中)

【轉】嘗試在關閉一個被調試的程序時出現以下錯誤:
檢測到LoaderLock
DLL「C:\WINDOWS\assembly\GAC\...\..\...dll」正試圖在 OS 加載程序鎖內執行託管代碼。不要嘗試在DllMain 或映像初始化函數內運行託管代碼,這樣作會致使應用程序掛起。

最簡單的方法,在"Debug"菜單下----"Exceptions"----"Managed Debugging Assistants"中掉"LoaderLock"

說明:
.NET2.0中增長了42種很是強大的調試助手(MDA) ,Loaderlock是其中之一。Loaderlock檢測在一個擁有操做系統loader lock的線程上運行託管代碼的狀況。這樣作有可能會引發死鎖,而且有可能在操做系統加載器初始化DLL前被使用。雖然這樣作頗有必要,但在進行開發調試的時候,實在太麻煩.固然修改註冊表也是解決辦法之一,不過這樣作,在這樣全部基於.NET2.0開發等於禁用了MDA的優勢。函數

【原創】以上方法是在2008年時一位網友的帖子,在vs2008中並不適用,解決辦法爲項目-》**屬性-》調試-》點選「啓用非託管代碼調試」。操作系統

相關文章
相關標籤/搜索