我正在使用Visual Studio 2008并开发一个VB.NET应用程序。
我的程序有一个奇怪的死锁问题,但只有在Internet Explorer 8打开的时候。
当我用另一个窗口覆盖我的表格然后发现它时,我发现它已经锁定。
我的程序没有对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,也不会在挂起时抛出任何异常。