loaderlock MDA - 稍后在应用程序执行中

时间:2011-07-17 12:35:57

标签: c# interop

这是运行我的应用程序时遇到的问题,它不在任何启动路由中,但后来很久:

  

托管调试助手'LoaderLock'在'C:\ Projects \ VideoPhill \ PlayerRAC \ Recorder \ VidePhill Recorder Test \ bin \ x86 \ Debug \ VideoPhillRecorder.vshost.exe'中检测到问题。   附加信息:DLL'C:\ Windows \ assembly \ GAC \ Microsoft.DirectX.DirectSound \ 1.0.2902.0__31bf3856ad364e35 \ Microsoft.DirectX.DirectSound.dll'正在尝试OS Loader锁内的托管执行。不要尝试在DllMain或图像初始化函数中运行托管代码,因为这样做会导致应用程序挂起。

为什么呢?去哪儿看?在debuging时我问题,而不是在运行时。

1 个答案:

答案 0 :(得分:2)

MDA具有发出虚假警告的诀窍。显然,在加载DirectX包装器时,CLR已经加载并初始化,程序实际上并没有挂起。 Debug + Exceptions,展开Managed Debugging Assistants节点并取消选中“LoaderLock”,这样它就会停止唠叨。

避免在MDX上消耗大量精力,它已经在很久以前被宣布为过时的。由XNA Framework替代。还有一些开源包装器(SlimDX,SharpDX,DirectShow.NET)。我不能评论他们的实力。