代码之家  ›  专栏  ›  技术社区  ›  heijp06

如何在Visual Studio 2008中调试*invoke()。

  •  1
  • heijp06  · 技术社区  · 17 年前

    调试有问题 Invoke() BeginInvoke() 在Visual Studio 2008中。

    例如,在下面的代码中,调试器在 调用() 呼叫。我本想让它破裂的 Console.WriteLine(p.ToString()); 因为这就是引发异常的地方。在这样简单的代码中,这不是什么问题,但在更复杂的代码中,它会变得非常烦人。用 BeginIvoke() 事情甚至变得更糟,因为随后调试器中断 Application.Run(new Form1()); )

    是否有任何方法可以使调试器在原始异常的位置中断?

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
            Invoke(new Action(MyMethod));
        }
    
        private void MyMethod()
        {
            object p = null;
            Console.WriteLine(p.ToString());
        }
    }
    
    2 回复  |  直到 17 年前
        1
  •  4
  •   Sam Harwell    17 年前

    调试菜单>异常>选中“引发”框,查看是否有任何要在调试器引发时中断的异常。

        2
  •  0
  •   Doug L.    17 年前

    当你冒险进入这个发展领域时,你能做的其他事情就是 调试线程窗口 . 当你点击断点并单步执行代码时,记下线程(你甚至可以为它们命名以便澄清),以帮助你更好地理解代码执行(和调用)时发生了什么。

    当您使用后台线程、计时器、事件等,并且需要调用回UI线程时,这尤其有用。

    推荐文章