|

楼主 |
发表于 2008-5-28 13:07:53
|
显示全部楼层
SuspendTimerCallbacks 停止所有,ResumeTimerCallbacks重启所有。
我在StartCallback函数(按钮Start的回调函数)中
int CVICALLBACK StartCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
ResumeTimerCallbacks();//启动所有定时器
SetCtrlAttribute (panelHandle, PANEL_Timer1, ATTR_ENABLED, 1);
SetCtrlAttribute (panelHandle, PANEL_Timer2, ATTR_ENABLED, 1);
SetCtrlAttribute (panelHandle, PANEL_Timer3, ATTR_ENABLED, 1);
//Timer3执行完成后SuspendTimerCallbacks
break;
}
return 0;
}
希望按顺序,点击Start按钮,先执行Timer1,再执行Timer2,再执行Timer3,结果不行。存在竞争,有时候Timer2还没执行,就执行Timer3。特别是再次点击Start按钮、启动所有定时器(ResumeTimerCallbacks)时,执行顺序更乱。 |
|