此方法是
OMTimerManager 类的构造函数。
特征符RP_FRAMEWORK_DLL OMTimerManager (int ticktime =
OMTimerManagerDefaults::defaultTicktime,
unsigned int maxTM =
OMTimerManagerDefaults::defaultMaxTM,
OMBoolean isRealTimeModel = TRUE);
参数ticktime
指定以毫秒为单位的基本系统节拍。在每个节拍,都会通知
Rational® Rhapsody® 框架和用户应用程序时间已推移。
timer.h 中按以下方式定义的
defaultTicktime 用于指定缺省节拍时间:
static
const unsigned defaultTicktime;
oxf.cpp 中按以下方式指定了缺省值:
const
unsigned OMTimerManagerDefaults::
defaultTicktime = 100;
maxTM
指定系统中可以同时存在的最大超时数量。maxTM 的值用于构造堆和存储超时的到期队列。
defaultMaxTM 是在
timer.h 中定义的,如下所示:
static const unsigned defaultMaxTM;
oxf.cpp 中按以下方式指定了缺省值:
const unsigned OMTimerManagerDefaults::
defaultMaxTM = 100;
isRealTimeModel
指定时间模型是实时模型
(TRUE) 还是模拟时间模型 (FALSE)。
备注- defaultTicktime 为 100 毫秒。随着您减小
ticktime(例如,减小到 50 毫秒),您将会获得“更高”的计时器准确性,但线程会使用更多 CPU 时间(因为它是一个单独的线程)。另外,应用程序每隔一个 ticktime 就执行一次的操作也会使用时间。如果您指定非常小的
ticktime,那么系统可能会发生冲突。您应该使用 100 毫秒作为此参数的值。
- 通过在构造函数中编辑指定给 defaultTicktime 的值,然后重新编译 OXF 库,您可以更改缺省时钟节拍 100 毫秒。
- 您可以通过设置
TimerResolution 特性(位于 <lang>_CG::Framework 中)来覆盖缺省节拍时间。
- 框架使用 maxTM 来构造堆和超时到期列表。defaultMaxTM 为
100。maxTM 使动态框架能够提供静态体系结构,从而避免在运行时期间进行动态内存分配。另外,静态运行时体系结构还使您能够轻松对系统进行分析。Rational Rhapsody 静态事件为不需要(或不允许)在运行时期间进行动态内存管理的实时安全关键系统提供便利。但是,请注意 Rational Rhapsody 在初始化期间需要 malloc,并且应用程序必须支持动态内存分配。
- OMTimeout 类 宏为超时创建内存池。new 运算符从内存池中获取内存。删除 操作将内存返回给内存池。
- 要更改应用程序的
maxTM 的值,请更改 defaultMaxTM 属性。您也可以通过设置
TimerMaxTimeouts 特性(位于 <lang>_CG::Framework 中)来覆盖缺省最大超时数量。
- 如果应用程序超过 maxTM 并尝试创建额外的超时,那么返回值将为 NULL。您必须提前指定系统中可以同时存在的最大超时数量。