字体
第(2/7)页
关灯
   存书签 书架管理 返回目录
跑道的矩形;

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·218·

    }HORSE, *LPHORSE;

    (3)设置全局变量

    定义Mutex 句柄和名称的全局变量,代码如下:

    // Mutex 对象的名称

    char g_strRNcom[64] = "RedHorse";

    char g_strGNcom[64] = "GreenHorse";

    char g_strBNcom[64] = "BlueHorse";

    // Mutex 对象的句柄

    HANDLE g_hRMutex;

    HANDLE g_hGMutex;

    HANDLE g_hBMutex;

    (4)添加成员变量

    为CRacingDlg 添加3 个赛马信息的成员变量,包括红色、绿色、蓝色3 匹马。添加3

    个线程句柄的成员变量,以及一个线程是否暂停的成员变量,代码如下:

    // 定义红, 绿, 蓝3 匹马

    HORSE m_RedHorse;

    HORSE m_GreenHorse;

    HORSE m_BlueHorse;

    // 定义红, 绿, 蓝3 匹马各自线程的句柄

    HANDLE m_hRed;

    HANDLE m_hGreen;

    HANDLE m_hBlue;

    // 是否暂停状态

    BOOL m_bPaused;

    为控件添加成员变量,代码如下:

    // 设置红马的速度

    CSliderCtrl m_BSpeed;

    // 设置绿马的速度

    CSliderCtrl m_GSpeed;

    // 设置蓝马的速度

    CSliderCtrl m_RSpeed;

    // 跑道矩形

    CStatic m_RacingBox;

    (5)初始化信号量

    为CRacingDlg 添加初始化函数InitMutexes,用来创建Mutex 对象,代码如下:

    枫叶文学网www.fywxw.com

    第9 章 多线程

    ·219·

    BOOL CRacingDlg::InitMutexes()

    {

    // 初始化红马的Mutex

    g_hRMutex = CreateMutex(NULL, FALSE, g_strRNcom);

    if(g_hRMutex == NULL)

    {

    return FALSE;

    }

    // 初始化绿马的Mutex

    g_hGMutex = CreateMutex(NULL, FALSE, g_strGNcom);

    if(g_hGMutex == NULL)

    {

    return FALSE;

    }

    // 初始化蓝马的Mutex

    g_hBMutex = CreateMutex(NULL, FALSE, g_strBN
上一页 目录 下一页