This compiles, and should work, perhaps with a little fine tuning. If you want to see this with indents, send me your e-mail address -- gary.hendra@ngc.com
#include "asynctmr.h"
#include
#include
#include
#include "testthread.h"
static int panelHandle, runThread, timerExpired, timerID;
//-----------------------------------------------------------------
// Function Declarations
int CVICALLBACK RespondToTimer(int reserved, int timerId, int event,
void *callbackData, int eventData1,
int eventData2);
int CVICALLBACK doSomeStuffThread (void *functionData);
//-----------------------------------------------------------------
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "testthread.uir", PANEL)) < 0)
return -1;
timerID = NewAsyncTimer (10.0, -1, 1, RespondToTimer, 0);
runThread = 1;
CmtScheduleThreadPoolFunction (DEFAULT_THREAD_POOL_HANDLE,
doSomeStuffThread, NULL, NULL);
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK RespondToTimer(int reserved, int timerId, int event,
void *callbackData, int eventData1,
int eventData2)
{
SuspendAsyncTimerCallbacks ();
return timerExpired = 1;
}
int CVICALLBACK doSomeStuffThread (void *functionData)
{
int popupReturnVal;
while(runThread)
{
// Do Some Stuff;
if (timerExpired)
{
popupReturnVal = GenericMessagePopup ("Do you want to continue?",
"Continue the Thread?", "No",
"Yes", "", 0, 0, 0,
VAL_GENERIC_POPUP_BTN1,
VAL_GENERIC_POPUP_BTN1,
VAL_GENERIC_POPUP_BTN3);
if (popupReturnVal == 0)
runThread = 0;
else
ResumeAsyncTimerCallbacks ();
}
}
return 0;
}