This page was last modified 16:52, 20 March 2008.
Talk:Running an Active Object in OpenC
From Forum Nokia Wiki
Not bad but how about this ...
void CPeriodicRunner::DoTick()
{
iTotalTicks--;
printf("Periodic timer %d done\n", iTotalTicks);
if(iTotalTicks==0)
{
CActiveSheduler::Stop(); // break the scheduler loop
}
else
{
timer.After(iStatus, 1000000);
SetActive();
}
}
And then
void activeClassL()
{
CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
CleanupStack::PushL(scheduler);
CActiveScheduler::Install(scheduler);
CPeriodicRunner* periodic = CPeriodicRunner::NewL(4);
periodic->Start();
// enter the loop
CActiveScheduler::Start();
// gets here once the loop ends
delete periodic;
periodic = NULL;
// Delete active scheduler
CleanupStack::PopAndDestroy(scheduler);
}
Ltomuta 18:51, 20 March 2008 (EET)
