📄 activeobjectexam.cpp
字号:
/*
============================================================================
Name : ActiveObjectExam.cpp
Author : hou maoqing
Copyright : Copyright (c) Hou maoqing 2008
Description : Exe source file
============================================================================
*/
// Include Files
#include "ActiveObjectExam.h"
#include <e32base.h>
#include <e32std.h>
#include <e32cons.h> // Console
#include "ClockTimer.h"
#include "CalculateSum.h"
// Constants
_LIT(KTextConsoleTitle, "Console");
_LIT(KTextFailed, " failed, leave code = %d");
_LIT(KTextPressAnyKey, " [press any key]\n");
// Global Variables
LOCAL_D CConsoleBase* console; // write all messages to this
CConsoleBase* GetConsole()
{
return console;
}
// Local Functions
LOCAL_C void MainL()
{
//
// add your program code here, example code below
//
console->Write(_L("Hello, world!\n"));
}
LOCAL_C void DoStartL()
{
// Create active scheduler (to run active objects)
CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
CleanupStack::PushL(scheduler);
CActiveScheduler::Install(scheduler);
// Create AO
CClockTimer* pClockTimer=CClockTimer::NewLC();
pClockTimer->StartL(1*1000*1000); //Send a request, start task
//使用AO分散完成大任务
CCalculateSum* pCalculateSum=CCalculateSum::NewLC();
pCalculateSum->StartCalculate();
//普通的一次完成大任务
TInt nSum=0;
for(TInt i=1;i<=10000;i++)
nSum+=i;
TBuf<40> bufSum;
bufSum.AppendFormat(_L("By C++, Sum=%d\n"),nSum);
console->Write(bufSum);
// Start ActiveScheduler
CActiveScheduler::Start();
CleanupStack::PopAndDestroy(2);
// Delete active scheduler
CleanupStack::PopAndDestroy(scheduler);
}
// Global Functions
GLDEF_C TInt E32Main()
{
// Create cleanup stack
__UHEAP_MARK;
CTrapCleanup* cleanup = CTrapCleanup::New();
// Create output console
TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(KConsFullScreen,KConsFullScreen)));
if (createError)
return createError;
// Run application code inside TRAP harness, wait keypress when terminated
TRAPD(mainError, DoStartL());
if (mainError)
console->Printf(KTextFailed, mainError);
console->Printf(KTextPressAnyKey);
console->Getch();
delete console;
delete cleanup;
__UHEAP_MARKEND;
return KErrNone;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -