【问题标题】:Can't debug Task in Visual Studio 2015 Win-forms无法在 Visual Studio 2015 Win-forms 中调试任务
【发布时间】:2015-12-01 20:55:48
【问题描述】:

这是 Windows 窗体应用程序。

如标题所示,我无法在 Visual Studio 2015 中调试任务。如果我将在var a = costam(); 行检查断点,它将被命中,但如果那样我将按步进入,或者continue 则不会继续执行。这在控制台应用程序中运行良好。现在我检查了一下,当我尝试在 Task 中运行我自己的方法时,或者我正在调用某些东西时,就会出现该错误。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        Task.Run(() =>
        {
            var a = costam();
        });
    }

    string costam()
    {
        return "s";
    }
}

【问题讨论】:

  • 也许这篇文章有帮助? Tracking Crash in Winform
  • 在 VS2013 中一切正常。 VS2015 的更新 1 似乎解决了这个问题。

标签: winforms debugging visual-studio-2015 task-parallel-library


【解决方案1】:

我建议更改设置以中断调试菜单中的任何异常,而不仅仅是未捕获的异常。当“抛出”异常时,此选项称为中断。不幸的是,我不熟悉 2015 年的例外菜单,所以我无法为您提供帮助。

有些异常会在幕后被捕获和抑制,尤其是在 WinForms 中——构造函数/加载事件被特别屏蔽。它可能不喜欢在 UI 线程中生成新线程,这就是为什么它在 WinForms 应用程序而不是控制台应用程序中引发异常的原因。这也解释了为什么“介入”“不起作用”——它介入但异常意味着没有命中下一个断点。

【讨论】:

  • 嗯.. 我认为这不是问题。相同的代码在 VS2013 中工作。这段代码也不例外。我设置的断点被命中,但您无法恢复应用程序。看起来它在 Visual Studio 中恢复了,但应用程序无法正常工作。
  • 尝试启用对所有异常的中断并查看是否在后台遇到异常。还可以尝试将完全相同的代码放入点击事件中,看看会发生什么。
  • 我早些时候尝试过这个。点击事件——一切都一样
【解决方案2】:

VS2015 的更新 1 似乎解决了这个问题。

【讨论】:

    猜你喜欢
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2015-11-06
    • 2015-11-27
    • 2015-12-11
    • 1970-01-01
    相关资源
    最近更新 更多