C# 为什么windows窗体应用程序会卡在user32中__ClientWaitMessageExMPH?
我有一个多线程的.net 4 windows窗体应用程序,它有时只是停下来响应用户操作和Invoke()调用 我在挂起期间进行了转储,似乎主线程在等待用户输入时被阻塞了 以下是主线程的堆栈跟踪: 为什么它在那里很糟糕,我可以锁定一些可以在消息泵中使用的东西,我没有直接锁定任何本地的东西C# 为什么windows窗体应用程序会卡在user32中__ClientWaitMessageExMPH?,c#,.net,multithreading,winapi,message-pump,C#,.net,Multithreading,Winapi,Message Pump,我有一个多线程的.net 4 windows窗体应用程序,它有时只是停下来响应用户操作和Invoke()调用 我在挂起期间进行了转储,似乎主线程在等待用户输入时被阻塞了 以下是主线程的堆栈跟踪: 为什么它在那里很糟糕,我可以锁定一些可以在消息泵中使用的东西,我没有直接锁定任何本地的东西 挂起开始后-主线程的CPU使用率为零。是否有一些特定的调用要求(如使用返回值或输出参数)?如果不是,用BeginInvoke替换Invoke,这可能会有所帮助。BeginInvoke应该是默认选择。不幸的是,它会
挂起开始后-主线程的CPU使用率为零。是否有一些特定的调用要求(如使用返回值或输出参数)?如果不是,用BeginInvoke替换Invoke,这可能会有所帮助。BeginInvoke应该是默认选择。不幸的是,它会在许多地方破坏应用程序逻辑。主线程中是否有一些等待操作?应用程序也拒绝处理BeginInvoke。我只有一个UI线程。