📄 calculatesum.cpp
字号:
/*
============================================================================
Name : CalculateSum.cpp
Author : hou maoqing
Version : 1.0
Copyright : Copyright (c) Hou maoqing 2008
Description : CCalculateSum implementation
============================================================================
*/
#include "CalculateSum.h"
#include "ActiveObjectExam.h"
#include <e32cons.h>
CCalculateSum::CCalculateSum() :
CActive(EPriorityStandard) // Standard priority
{
}
CCalculateSum* CCalculateSum::NewLC()
{
CCalculateSum* self = new ( ELeave ) CCalculateSum();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CCalculateSum* CCalculateSum::NewL()
{
CCalculateSum* self = CCalculateSum::NewLC();
CleanupStack::Pop(); // self;
return self;
}
void CCalculateSum::ConstructL()
{
User::LeaveIfError(iTimer.CreateLocal() ); // Initialize timer
CActiveScheduler::Add( this); // Add to scheduler
}
CCalculateSum::~CCalculateSum()
{
Cancel(); // Cancel any request, if outstanding
iTimer.Close(); // Destroy the RTimer object
// Delete instance variables if any
}
void CCalculateSum::DoCancel()
{
iTimer.Cancel();
}
void CCalculateSum::StartL(TTimeIntervalMicroSeconds32 aDelay)
{
Cancel(); // Cancel any request, just to be sure
iState = EUninitialized;
iTimer.After(iStatus, aDelay); // Set for later
SetActive(); // Tell scheduler a request is active
}
void CCalculateSum::StartCalculate()
{
m_nStep=1000;
m_nLastInt=0;
m_nSum=0;
Cancel();
CalculateNext();
}
void CCalculateSum::CalculateNext()
{
for(TInt i=0;i<m_nStep;i++)
{
m_nLastInt++;
if(m_nLastInt>10000)
{
CalculateFinished();
return;
}
m_nSum+=m_nLastInt;
}
//延时一会后,接着计算
iTimer.After(iStatus, 30*1000); // Set for 30ms later
SetActive(); // Tell scheduler a request is active
}
void CCalculateSum::CalculateFinished()
{
TBuf<40> bufSum;
bufSum.AppendFormat(_L("By AO, Sum=%d\n"),m_nSum);
GetConsole()->Write(bufSum);
}
void CCalculateSum::RunL()
{
CalculateNext();
}
TInt CCalculateSum::RunError(TInt aError)
{
return aError;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -