日期:2014-05-19  浏览次数:20988 次

请熟悉VS2005 C#的帮忙看看是什么问题
当我在VS2005   C#中调试一个程序时,在生成解决方案时没有报任何错误并显示成功,但是运行是就出现如下错误:

托管调试助手“LoaderLock”在“F:\World_Wind_1.4.0_Source\World_Wind_1.4.0_Source\WorldWind\bin\x86\Release\WorldWind.exe”中检测到故障。

其他信息:   DLL“C:\WINDOWS\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll”正试图在   OS   加载程序锁内执行托管代码。不要尝试在   DllMain   或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。

望大家能给点意见.
Thanks!


------解决方案--------------------
解决方法:

调试菜单--异常--Managed Debuggin Assistants--LoaderLock 去掉就可以下正常调试了。

.NET2.0中增加了42种非常强大的调试助手(MDA),Loaderlock是其中之一。Loaderlock检测在一个拥有操作系统loader lock的线程上运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。虽然这样做很有必要,但在进行开发调试的时候,实在太麻烦。

------解决方案--------------------
不要尝试在 DllMain 或映像初始化函数内运行托管代码.