我的C#应用​​程序处于循环中,如何在代码中找到位置?

时间:2017-10-01 08:48:18

标签: c# visual-studio loops debugging

我编写了一个在后台运行的相当大的应用程序,执行圆顶操作并处理一些数据。

现在的问题是,有一段时间应用程序运行正常。但是当我稍后检查一天后,我的应用程序的Backgroundworker似乎循环或卡住了。没有错误消息,应用程序的UI仍然正常运行。它只是停止处理数据。

特别针对这种情况,我为自己添加了一个简单的网站,其中Backgroundworker报告了当前的DateTime。因此,当网站上的DateTime有点时,我知道它运行正常。但是,当它过去时,我知道我的申请被卡住了。

问题出现在未定义的时间之后。它可以是10分钟或90小时。

现在进行调试:在Visual Studio中是否有办法可以看到应用程序当前的位置?这将使调试变得更容易。其他我必须在试错基础上设置断点......

致以最诚挚的问候,

朱利安

1 个答案:

答案 0 :(得分:0)

您有两种选择:

1.-按照建议的方式附加调试器并检查代码,但如果应用程序运行很长时间,则不是最好的主意。

2.-日志文件。创建日志文件以跟踪您的应用程序。

我会做什么:我会结合两种选择。添加日志文件以检查结果以及应用程序何时到达某些点(由您决定),然后,一旦我知道问题的位置或多或少,请使用调试器。

祝你好运

编辑:

我完全赞同这个答案,但是会补充一点,你可以从后台工作人员进入和离开特定部分时将关键位置信息传递回UI,这样你就可以在附加时简单地查询它。由于问题可能需要几个小时才能显现出来,因此除非您使用具有有限条目的滚动日志,否则最终可能需要大量日志文件才能通过,连续设置告警将至少让您知道大致放置断点的位置那一刻。