请教下System.Windows.Forms.Timer到底是不是单线程的。
我看帮助文档说这个是单线程的,但我下面试验有些不解。
试验一:
我timer1的Interval设为500
private void timer1_Tick(object sender, EventArgs e)
{
MessageBox.Show("test");
Thread.Sleep(2000);
}
如果是单线程的,当弹出第一个"test"后,由于Thread.Sleep(2000);的阻塞,
第二个对话框应至少2秒后才能弹出,但实际上Thread.Sleep(2000);这一句加与没加的效果相同,都是500毫秒弹出一次"test"。感觉就像多线程的。
可是当我改成下面后
试验二:
private void timer1_Tick(object sender, EventArgs e)
{
Thread.Sleep(2000);
MessageBox.Show("test");
}
"test"并没弹出,而是出现窗口卡住了,这又是怎么回事呢(我用断点也不能拦到)
谢谢!