C# 基于表单的应用程序的第二个实例不显示UI

C# 基于表单的应用程序的第二个实例不显示UI,c#,.net,windows,winforms,C#,.net,Windows,Winforms,我面临一个奇怪的问题。我有一个小的基于表单的GUI应用程序,支持多种文化 现在,当我在目标系统上运行这个应用程序时,应用程序的第二个实例并没有显示任何GUI 但是=>我添加了一个MessageBox.Show-before-showDialog调用,每次都可以正常工作 我不知道MessageBox.Show call有多神奇 此外,该应用程序在构建系统上运行良好 额外资料: 如果我对'System.ComponentModel.ComponentResourceManager'进行注释,一切正常

我面临一个奇怪的问题。我有一个小的基于表单的GUI应用程序,支持多种文化

现在,当我在目标系统上运行这个应用程序时,应用程序的第二个实例并没有显示任何GUI

但是=>我添加了一个MessageBox.Show-before-showDialog调用,每次都可以正常工作

我不知道MessageBox.Show call有多神奇

此外,该应用程序在构建系统上运行良好

额外资料:

如果我对'System.ComponentModel.ComponentResourceManager'进行注释,一切正常

我看到第二个实例正在运行,但甚至并没有进入Main,因为我并没有看到我添加的日志

示例代码:

这里是堆栈跟踪:我很好地理解了这一点:

0:000> kb
ChildEBP RetAddr  Args to Child              
0012d4d0 7c90df4a 7c809590 00000002 0012d4fc ntdll!KiFastSystemCallRet
0012d4d4 7c809590 00000002 0012d4fc 00000001 ntdll!ZwWaitForMultipleObjects+0xc
0012d570 7e4195f9 00000002 0012d598 00000000 kernel32!WaitForMultipleObjectsEx+0x12c
0012d5cc 7752e73e 00000001 0020d1b0 ffffffff user32!RealMsgWaitForMultipleObjectsEx+0x13e
0012d5f4 77557297 0020d1b0 ffffffff 0012d620 ole32!CCliModalLoop::BlockFn+0x80
0012d668 79f1a2fd 00000002 ffffffff 00000001 ole32!CoWaitForMultipleHandles+0xcf
0012d688 79f1a264 00000000 ffffffff 00000001 mscorwks!NT5WaitRoutine+0x51
0012d6f4 79f1a1c8 00000001 0020d1b0 00000000 mscorwks!MsgWaitHelper+0xa5
0012d714 79fcccd0 00000001 0020d1b0 00000000 mscorwks!Thread::DoAppropriateAptStateWait+0x28
0012d798 79fccd65 00000001 0020d1b0 00000000 mscorwks!Thread::DoAppropriateWaitWorker+0x13c
0012d7e8 79fccee9 00000001 0020d1b0 00000000 mscorwks!Thread::DoAppropriateWait+0x40
0012d844 79e7549a ffffffff 00000001 00000000 mscorwks!CLREvent::WaitEx+0xf7
0012d858 79fd774d ffffffff 00000001 00000000 mscorwks!CLREvent::Wait+0x17
0012d8e4 79f016f0 001593a0 ffffffff 001593a0 mscorwks!AwareLock::EnterEpilog+0x8c
0012d900 79f01674 4ea81039 0012d9c0 001593a0 mscorwks!AwareLock::Enter+0x61
0012d9a0 00ce3a15 013a44f4 00000000 00000000 mscorwks!JIT_MonEnterWorker_Portable+0xb3
WARNING: Frame IP not in any known module. Following frames may be wrong.
0012d9f0 79e80838 00361efe 0012da24 4e8438a1 0xce3a15
0012da2c 79e71b4c 001f4778 00231290 0012dabc mscorwks!PreStubWorker+0x141
0012da3c 79e8968e 00000000 00000000 0012dbec mscorwks!CallDescrWorker+0x33
0012dabc 79e89e8b 00000000 00000000 0012dbec mscorwks!CallDescrWorkerWithHandler+0xa3
将[STAThred]属性添加到主方法

[STAThread]  
public static void Main()
{
  ...
}

如何启动应用程序的第二个实例?ShowDialog调用如何应用?您能发布一些代码吗?如果我更改系统的显示语言,它也可以工作一次。资源程序集是否由第二个应用程序加载?如果使用VisualStudio的调试器连接,则可以检查此项。或者使用SysInternals中的Process Explorer。感谢您的回答,但这已经存在了。很抱歉,我没有输入示例代码
[STAThread]  
public static void Main()
{
  ...
}