簡體   English   中英

如何在Visual Studio 2008中調試* Invoke()

[英]How to debug *Invoke() in Visual Studio 2008

我在Visual Studio 2008中調試Invoke()BeginInvoke()遇到問題。

例如,在下面的代碼中,調試器在Invoke()調用中中斷。 我本來希望它在Console.WriteLine(p.ToString());上打破Console.WriteLine(p.ToString()); 因為那是拋出異常的地方。 在代碼這么簡單,這不是一個問題,但它可以在更復雜的代碼中變得非常煩人。 (使用BeginIvoke()事情甚至變得更糟,因為然后調試器在Application.Run(new Form1());斷開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());
    }
}

調試菜單>例外>檢查“投擲”框,查看要在拋出調試器時進入調試器的任何異常。

當你進入這個開發領域時,你可以做的其他事情是啟用調試線程窗口 如果您遇到斷點並逐步完成代碼,請記下線程(您甚至可以將它們命名為澄清)以幫助您更好地了解代碼執行(並調用)時發生的情況。

當您使用后台線程,計時器,事件等,並且需要調用回UI線程時,這尤其有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM