VB.NET程序在Internet Explorer打开时锁定

时间:2009-07-07 14:00:49

标签: vb.net locking

我正在使用Visual Studio 2008并开发VB.NET应用程序。 我的程序遇到了奇怪的锁定问题,但只有在打开Internet Explorer 8时才会出现。

当我用另一个窗口覆盖我的表格然后揭开它时,我发现它已被锁定。 我的程序没有IE的引用,它与IE的唯一关系就是使用带有Web地址的Process.Start。

我的程序运行正常,但是只有当IE未打开时才会正常工作。

有人知道为什么只有在IE运行时程序会锁定吗?

编辑:我已经做了一些挖掘,我在程序中找到了令人讨厌的线程。 我不知道是什么启动了这个帖子或它做了什么,但当我杀了它时,我的程序不再冻结。该线程是CreateApplicationContext线程之一,这是该线程的堆栈跟踪中的最后几个项目。

6 ntkrnlpa.exe + 0x897bc

7 ntdll.dll!KiFastSystemCallRet

8 mscorwrks.dll!LogHelp_TerminateOnAssert + 0x61

9 mscorwrks.dll!DllUnregisterServerInternal + 0x10523

10 mscorwrks.dll!DllUnregisterServerInternal + 0x10542

11 mscorwrks.dll!StrongNameErrorInfo + 0x34387

12 mscorwrks.dll!StrongNameErrorInfo + 0x34815

13 mscorwrks.dll!CreateApplicationContext + 0xbc35

14 KERNEL32.dll!GetModuleHandleA + 0xdf

进程资源管理器说我的程序在挂起时不使用CPU也不会抛出任何异常。

1 个答案:

答案 0 :(得分:0)

尝试确定您是否有任何未处置的线程或其他Windows窗体资源。好像IE正在抓住你的程序尚未发布的线程。

另外,请注意,由于任何覆盖程序的窗口都可能导致此错误,因此可能不完全是IE的错误。检查重绘表单或表单元素的任何位置。

尝试暂时删除线程或删除显示密集型表单元素并尝试再次创建锁定。