正在加载图片...
·488· 北京科技大学学报 1997年第5期 SHUTDOWN+i(0si<N2):停态i,即完成第i个停步. 定义消息: WM STARTUP:启进程消息,以WPARAM参数表示启步, WM SHUTDOWN:停进程消息,以NPARAM参数表示停步. 为每个状态设置一个事件,以“进程主窗口名+状态名”作为事件名,控制进程启停的同 步.将进程与启停状态信息及其操作封装于一个多进程类CMultiProcess,设计一个协同进 程,构造CMultiProcess对象完成各进程的启停,达到进程间的启停同步, 3.2多进程类CMultiProcess的实现 (1)数据结构. ①进程信息PROCESSINFO:包括进程号,进程名、进程可执行文件名、进程主窗口名和 进程优先级等. ②状态信息STATUSINFO:包括状态值和状态名等, ③CMultiProcess类的主要数据成员及成员函数 ·UINT m_nProcessCount:进程数. ·PROCESSINFO*m IpProcessTable:进程表. ·UINT m_nStartStatusCount,,m nShutStatusCount::进程启(停)状态数. ·STATUSINFO*m IpStartStatusTable,*m IpShutStatusTable:进程启(停)状态表. .CMultiProcess(UINT,PROCESSINFO*,UINT,STATUSINFO*,UINT,STATUSINFO*): 构造函数,设置进程数、进程表以及进程启(停)状态数与启(停)状态表, ·void StartProcess():启进程函数. ·void ShutProcess():停进程函数, (2)多进程启(停)函数的实现算法. Algorithm StartProcess ( 根据进程表m IpProcessTable,创建所有进程; UINT nStatusIndex 1; for(; { 构造m nProcessCount个手动复位事件,名为“进程主窗口名+第nStatusIndex个启态 名”; 构造与之相关的CMultiLock对象mLock; mLock.Lock() if nStatusIndex >m nStartStatusCount break; 向各进程主窗口发送WM STARTUP消息,WPARAM参数值为nStatusIndex; nStatusIndex++; Algorithm ShutProcess()北 京 科 技 大 学 学 报 停 态 , 即完成第 个停 步 年 第 期 〕 ‘ 定 义 消 息 启进程 消息 , 以 参数表示 启步 停 进程 消息 , 以 参数表示停步 为每个状态设 置 一个事件 , 以 “ 进程 主 窗 口 名 状 态名 ” 作 为事件 名 , 控 制 进 程 启停 的 同 步 将 进 程 与 启 停 状 态 信 息 及 其 操 作 封 装 于 一 个 多 进 程 类 , 设 计 一 个 协 同进 程 , 构 造 对象完成各进程 的启停 , 达到进程 间 的启停 同步 多进程类 的实现 数据结构 ① 进 程 信息 包括进 程 号 、 进程 名 、 进程 可 执行 文件 名 、 进 程 主 窗 口 名 和 进程 优先级等 ②状态信息 包括状态值 和状态名等 ③ 类 的主要 数据成 员及成员 函数 · 进程 数 · 进程 表 ’ , 进程 启 停 状态数 · , 处 进程启 停 状态 表 , , , , , 】 构造 函 数 , 设置进程 数 、 进 程表 以 及进 程启 停 状态数 与启 停 状态表 ’ 启进程 函数 ’ 停进 程 函 数 多 进 程启 停 函 数 的实现算法 根 据进 程 表 , 创建 所有 进 程 叹 构 造 个 手 动 复 位 事 件 , 名 为 “ 进 程 主 窗 口 名 第 个 启 态 名 ” 构造 与之相 关 的 对象 向各进程 主 窗 口 发送 消息 , 参数值 为
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有