2010-02-03 62 views
3

在我们的程序中,您可以从列表中选择一种文档类型,然后单击确定,或者双击所选项目,然后双击一个新文档.NET应用程序仅以发布模式挂起,有时候...... :-(

现在的问题是,有时候,仅在发布模式下,当你双击一个项目时,应用程序会挂起,你仍然可以移动窗口,并且所有的都很好的重绘,但是没有任何回应无论如何... 在调试模式下,完全没有问题...此外,大多数时间一切正常吗??? 没有显示错误信息...我们所能做的就是终止进程.. 。

我们该怎么做f指出是什么原因造成的?

+0

它是一个多线程应用程序吗?某处可能会出现死锁吗? – Naveen 2010-02-03 16:11:19

回答

2

在Visual Studio中,使用工具+附加到进程并选择您的程序。如有必要,使用Debug + Windows + Threads选择一个线程。 Debug + Break All,查看调用堆栈以查看它死锁的位置。

+0

谢谢nobugz - 多数民众赞成它! .... 我有1个主线程和7个工作线程。 主线程似乎访问资源(翻译文件): mscorlib.dll中System.Resources.RuntimeResourceSet.GetString(字符串键,布尔IGNORECASE)+ 0×12字节\t ........ .. 代码为唯一的工作线程似乎在等待(在主线程?) \t [休眠,等待,或加入] \t mscorlib.dll中!System.Threading.WaitHandle.WaitOne(长超时,bool exitContext)+ 0x2f bytes 那么这是否意味着应用程序正在等待加载资源? – 2010-02-04 10:52:37

+0

显然,很奇怪。将整个堆栈跟踪复制并粘贴到您的问题中。 – 2010-02-04 12:37:49

3

你有没有介绍一些日志?您可以使用例如log4net来这样做。与PostSharp结合使用,您可以快速为所有方法入口/出口添加一些日志记录,并查看是否正在进行的操作。
(甚至有一个项目名为Log4PostSharp,但我从未尝试过)。

+0

提及PostSharp +1 - 从来不知道!谢谢:) – t0mm13b 2010-02-03 18:21:49

相关问题