可是我的程序确实要执行超过60s,这时,有两个方法可以屏蔽这个异常:
1、在vs2005环境中,debug菜单--〉Exception,把ContextSwitchDeadlock选项勾掉。
2、在配置文件中加入<mdaConfig>节,屏蔽该异常
CLR 无法从COM 上下文0x1a0e50 转换为COM 上下文0x1a0fc0,这种状态已持续60 秒
CLR は、COM コンテキスト 0x225a98 から COM コンテキスト 0x225c08 へ 60 秒で移行できませんでした。ターゲット コンテキストおよびアパートメントを所有するスレッドが、ポンプしない待機を行っているか、Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、パフォーマンスを低下させたり、アプリケーションが応答していない状態および増え続けるメモリ使用を導く可能性があります。この問題を回避するには、すべての Single Thread Apartment (STA) のスレッドが、CoWaitForMultipleHandles のようなポンプする待機プリミティブを使用するか、長い実行操作中に定期的にメッセージをポンプしなければなりません。
- 把vs2005菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉
- 如果异常(exception)这一项没有的话,在工具---自定义---命令选项卡---左边选择调试--右边把异常托到菜单里
- 快捷键Ctrl+Alt+E,修改Managed Debuggin Assistants->LoaderLock 的选中状态去掉