在WinForm中使用System.Windows.Forms.Timer对象,如果是在单线程中使用,则直接设置该对象的Enabled属性值即可启动计时器,但如果是在多线程窗体中在多线程引发的事件中调用计时器,请必须使用委托对象在UI窗体上INVOKE设置计时器Enabled的值,如果不使用INVOKE,则计时器将不会被启动。
委托声明如下:
public delegate void SetTimer(Timer tm,bool enabled);
调用:
委托声明如下:
public delegate void SetTimer(Timer tm,bool enabled);
调用:
void STimer(Timer tm,bool enabled)
{
Invoke(new SetTimer(__SetTimer), new object[] { tm,enabled });
}
void __SetTimer(Timer tm,bool o)
{
tm.Enabled = o;
}