WEB开发网
开发学院手机开发Symbian 开发 Symbian 开发不可忽视的多线程 阅读

Symbian 开发不可忽视的多线程

 2010-03-12 04:33:00 来源:WEB开发网   
核心提示:Code:1: // * as a wildcard for the name search2: _LIT(KFindAll, “*”);3: // default RThread object, has a handle of the current thread4: RThread thread;5: TFullN

Code:

1: // * as a wildcard for the name search

2: _LIT(KFindAll, “*”);

3: // default RThread object, has a handle of the current thread

4: RThread thread;

5: TFullName fullName;

6: TFindThread finder(KFindAll);

7: while (finder.Next(fullName) == KErrNone)

四、线程优先级

线程可以被赋予一个绝对或相对的优先级。绝对优先级定义了这个线程的总体优先级,不需要考虑其拥有者进程的优先级了。而赋予相对优先级时则将此线称定义为拥有者进程的优先级加上该相对优先级后的结果。

下面粗体标示的优先级值可以由用户代码设置:

Code:

enum TProcessPriority;

enum TThreadPriority;

上面枚举出来的值中绝对优先级值为:

EPriorityAbsoluteVeryLow, EPriorityAbsoluteLow, EPriorityAbsoluteBackground, EPriorityAbsoluteForeground, EPriorityAbsoluteHigh.

相对优先级值为:

EPriorityMuchLess, EPriorityLess, EPriorityNormal, EPriorityMore, EPriorityMuchMore.

EPriorityNull是一个特殊值,它定义了最低的级别,Kernel idel thread使用的就是它*_*

EPriorityRealTime定义了除核心服务线程优先级外最高的总体优先级。

RThread中的Priority()方法返回了一个线程的优先级(按以上描述值)。我们也可以通过SetPriority(TThreadPrioriy aPriority)方法来修改优先级。

ProcessPriority()方法返回了拥有该线程之进程的优先级(按TProcessPriority描述值)。我们也可以通过SetProcessPriority(TProcessPriority)方法来修改该进程的优先级。

五、异常处理

每个线程都有自己的异常处理模块。当线程发生异常时会调用异常处理模块。异常处理模块的赃型为:

typedef void TExceptionHandler(TExcType);

RThread包含了下列异常处理相关的方法:

TExceptionHandler* ExceptionHandler()

返回该线程当前异常处理模块的地址。

TInt SetExceptionHandler(TExceptionHandler* aHandler, TUint32 aMask);

定义了该线程新的异常处理模块的地址,以及它所处理异常的类别。

上一页  1 2 3 4  下一页

Tags:Symbian 开发 不可

编辑录入:coldstar [复制链接] [打 印]
赞助商链接