C# .NET应用程序仅在发布模式下挂起,有时…:-(

C# .NET应用程序仅在发布模式下挂起,有时…:-(,c#,.net,release,freeze,C#,.net,Release,Freeze,在我们的程序中,您可以从列表中选择一种文档类型。然后单击“确定”,或双击所选项目,将创建并显示一个新文档 现在的问题是,有时,仅在发布模式下,当你双击某个项目时,应用程序会挂起。你仍然可以移动窗口,所有内容都可以重新绘制,但没有任何响应。。。 在调试模式下,一点问题都没有……而且,大多数情况下,一切正常??? 没有显示错误信息…我们所能做的就是终止进程 我们如何找出导致挂起的原因?您是否引入了一些日志记录?您可以使用例如来这样做。与之相结合,您可以快速为所有方法入口/出口添加一些日志记录,并查看

在我们的程序中,您可以从列表中选择一种文档类型。然后单击“确定”,或双击所选项目,将创建并显示一个新文档

现在的问题是,有时,仅在发布模式下,当你双击某个项目时,应用程序会挂起。你仍然可以移动窗口,所有内容都可以重新绘制,但没有任何响应。。。 在调试模式下,一点问题都没有……而且,大多数情况下,一切正常??? 没有显示错误信息…我们所能做的就是终止进程


我们如何找出导致挂起的原因?

您是否引入了一些日志记录?您可以使用例如来这样做。与之相结合,您可以快速为所有方法入口/出口添加一些日志记录,并查看是否有异常情况发生。

(甚至有一个项目叫做,但我从未尝试过).

在Visual Studio中,使用工具+附加到进程并选择您的程序。如果需要,使用调试+Windows+线程来选择一个线程。调试+全部中断,查看调用堆栈以查看其死锁的位置。

是多线程应用程序吗?可能在某个地方出现死锁吗?谢谢nobugz-就是这样!…我有一个主线程,和7个工作线程。主线程似乎正在访问一个资源(翻译文件):mscorlib.dll!System.Resources.RuntimeResourceSet.GetString(字符串键,bool ignoreCase)+0x12字节………唯一一个带有代码的工作线程似乎正在等待(在主线程上?)[处于睡眠、等待或加入状态]mscorlib.dll!System.Threading.WaitHandle.WaitOne(长超时,bool exitContext)+0x2f字节那么这是否意味着应用程序正在等待加载资源?显然,非常奇怪。复制并粘贴整个堆栈跟踪到您的问题中。