读取xml文件时C#中的Contextswitchdeadlock错误

读取xml文件时C#中的Contextswitchdeadlock错误,c#,contextswitchdeadlock,C#,Contextswitchdeadlock,我有一个奇怪的错误: 托管调试助手“ContextSwitchDeadlock”检测到“C:\Documents and Settings\Lena G\My Documents\Schools\IR Information\Home Work\FianlProject\finalProject\finalProject\bin\Debug\finalProject.vshost.exe”中存在问题。 其他信息:CLR已经60秒无法从COM上下文0x3407968转换到COM上下文0x3407a

我有一个奇怪的错误:

托管调试助手“ContextSwitchDeadlock”检测到“C:\Documents and Settings\Lena G\My Documents\Schools\IR Information\Home Work\FianlProject\finalProject\finalProject\bin\Debug\finalProject.vshost.exe”中存在问题。 其他信息:CLR已经60秒无法从COM上下文0x3407968转换到COM上下文0x3407ad8。拥有目标上下文/单元的线程很可能正在执行非泵送等待或在不泵送Windows消息的情况下处理长时间运行的操作。这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随时间不断累积。为避免此问题,所有单线程单元(STA)线程都应使用泵送等待原语(如CoWaitForMultipleHandles),并在长时间运行操作期间定期泵送消息

在这个错误中,我可以继续运行或中断,如果我继续,那么运行正常,但这仍然让我担心。 我有一个程序,我读取一个包含一些文本的xml文件,将单词放在哈希表中,然后从哈希表写入一个正则文本文件

如果有人能帮我解决这个问题,请通知我

提前感谢,


莉娜

呸!托管调试助手很棒,但它们确实会给出详细的异常消息。在本例中,VisualStudio警告您,应用程序中正在执行COM调用的线程没有播放“nice”并正确响应Windows消息

你可以继续跑步,一切都应该很好——但首先调查是什么导致了问题是有意义的

您的代码具体做什么?它如何读取XML文件?文件有多大

如果它只是坐在一个循环中解析一个XMLDocument,那么我会惊讶地看到这个错误。您可能会(颤抖)想考虑检查Windows事件日志,看看硬盘上是否有任何坏扇区…


另一方面,如果您使用的是后台线程,那么可能是资源不足的问题,或者是某个地方的阻塞调用不够频繁。

您是在单独的线程中运行负载吗?如何读取xml文件?通过COM或本机C#?