昨天遇到了Loaderlock的問題。
出錯信息為:
檢測到LoaderLock,正試圖在OS加載程序鎖內執行托管代碼,不要嘗試在DllMain或映像初始化函數內運行托管代碼,這樣會導致應用程序掛起。
解決辦法:
在"Debug"菜單下----"Exceptions"----"Managed Debugging Assistants"中勾掉"LoaderLock"
說明:
.NET2.0中增加了42種非常強大的調試助手(MDA),Loaderlock是其中之一。Loaderlock檢測在一個擁有操作系統loader lock的線程上運行托管代碼的情況。這樣做有可能會引起死鎖,並且有可能在操作系統加載器初始化DLL前被使用。雖然這樣做很有必要,但在進行開發調試的時候,實在太麻煩。
注意:不是工程屬性裡的debug,而是菜單欄的debug