2010-05-11 148 views
0

我有一个应用程序(ABC),我开发它作为一个Windows应用程序(.exe)。它本身是一个很大的应用程序,涉及很多DLL。WinForms应用程序挂起

但是,现在有一个要求,这个应用程序(ABC)是一个更大的应用程序(XYZ)的一部分。因此,我必须将“ABC”的项目类型从Windows应用程序更改为类库,并更改几行代码。

我的问题是,自从我开始使用ABC作为XYZ的一部分后,如果我在它上面执行任何操作10到15分钟,应用程序就开始挂起......我在运行时没有任何问题一个单独的申请。

这可能发生的任何原因?

任何建议将非常感激......

感谢, 拉姆

+0

您是否尝试过附加调试器并暂停应用程序以查看线程处于什么状态? – 2010-05-11 13:01:29

+0

调用堆栈告诉你什么? – 2010-05-11 13:01:42

+0

谢谢codeka ...我很抱歉,但我不能完全明白你的建议...你能否详细说明一下? – Ram 2010-05-11 13:03:04

回答

2

启动XYZ在调试器。等待应用程序挂起,暂停调试器,并查看过程中的每个线程都忙于什么。

这也可以帮助打开“的所有异常中断”

+0

感谢罗布......我会尽力...... 但是有一件事: >>看看每一个在您的过程中的线程正在忙于<< 您能告诉我我该怎么做吗? – Ram 2010-05-11 13:08:14

+2

调试 - > Windows - >线程 – user7116 2010-05-11 13:23:26

+0

嗨, 我试着在调试器中离开应用程序......但是,当它处于调试模式(即,当我在VS中运行它)时,挂起永远不会发生..但是,如果我将该应用程序安装在我尝试调试的同一台机器上,应用程序挂起。 所以这就是我所做的。 我安装了应用程序。 等待它挂起。 将我的调试器附加到挂起的应用程序。 打开“线程”窗口并打开“中断”。 我可以看到列出的几个线程。 执行箭头指向一个线程。 这是否意味着这个线程是导致挂起的线程? 或者我进行了错误的方向。请教建议 – Ram 2010-05-12 15:49:35

0

您还可以使用remote debugging来调试应用程序,同时它在用户的机器上运行。在你的开发机器上,你可以附加到用户机器上的进程,然后执行一个调试中断来查看线程正在做什么。

+0

谢谢ShellShock ..我会试试这个... – Ram 2010-05-11 14:33:59