[英]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.