积极答复者
vs08 打断点的时候,对定时器的影响?

问题
答案
-
你好!
实际上可以这样理解,只有程序执行到断点的时候,程序才会终止,比如:
private System.Timers.Timer timer = new System.Timers.Timer(1000);
private int count = 0;
public Form1()
{
InitializeComponent();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
}
private void change()
{
count += 1;
this.label1.Text = count.ToString();
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
MethodInvoker In = new MethodInvoker(change);
this.BeginInvoke(In);
}
private void button1_Click(object sender, EventArgs e)
{
timer.Start();
int i = 0;
int j = i + 1; //这行加断点,点击button1,就在这里主线程中断,但是timer_Elapsed方法并没有遇到这个断点,所以他还在继续执行!当你继续执行程序的时候,会发现Label显示的数字已经变化了!
}
周雪峰- 已建议为答案 Raymond TangModerator 2009年12月5日 7:10
- 已标记为答案 YiChun Chen 2009年12月7日 11:49
全部回复
-
你好!
实际上可以这样理解,只有程序执行到断点的时候,程序才会终止,比如:
private System.Timers.Timer timer = new System.Timers.Timer(1000);
private int count = 0;
public Form1()
{
InitializeComponent();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
}
private void change()
{
count += 1;
this.label1.Text = count.ToString();
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
MethodInvoker In = new MethodInvoker(change);
this.BeginInvoke(In);
}
private void button1_Click(object sender, EventArgs e)
{
timer.Start();
int i = 0;
int j = i + 1; //这行加断点,点击button1,就在这里主线程中断,但是timer_Elapsed方法并没有遇到这个断点,所以他还在继续执行!当你继续执行程序的时候,会发现Label显示的数字已经变化了!
}
周雪峰- 已建议为答案 Raymond TangModerator 2009年12月5日 7:10
- 已标记为答案 YiChun Chen 2009年12月7日 11:49