Symbian操作系统中的线程和进程
2010-07-04 15:55:00 来源:WEB开发网9:
(未完待续)
BestRegards
hoolee
hoolee
View Public Profile
Send email to hoolee
Find all posts by hoolee
Add hoolee to Your Buddy List
#2 2005-04-28, 08:20
hoolee
Registered User Join Date: Mar 2005
Posts: 1,037
4、线程优先级
线程可以被赋予一个绝对或相对的优先级。绝对优先级定义了这个线程的总体优先级,不需要考虑其拥有者进程的优先级了。而赋予相对优先级时则将此线称定义为拥有者进程的优先级加上该相对优先级后的结果。
下面粗体标示的优先级值可以由用户代码设置:
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)方法来修改该进程的优先级。
5、异常处理
每个线程都有自己的异常处理模块。当线程发生异常时会调用异常处理模块。异常处理模块的赃型为:
typedef void TExceptionHandler(TExcType);
RThread包含了下列异常处理相关的方法:
TExceptionHandler* ExceptionHandler()
返回该线程当前异常处理模块的地址。
TInt SetExceptionHandler(TExceptionHandler* aHandler, TUint32 aMask);
定义了该线程新的异常处理模块的地址,以及它所处理异常的类别。
更多精彩
赞助商链接