zoukankan      html  css  js  c++  java
  • MFC 线程启动、暂停、继续、终止

    CWinThread* p_myThread;//创建线程指针
    BOOL flag_myThread = FALSE;//是否终止
    
    //头文件中声明(放类内) static UINT MyThreadFunction(LPVOID pParam);//定义线程入口函数
    UINT CMFCApplication25Dlg::MyThreadFunction(LPVOID pParam) //线程入口函数,具体实现
    {
        CMFCApplication25Dlg* dlg = (CMFCApplication25Dlg*)pParam;
        for (int i = 0; i <= 100; i++)
        {
            if (flag_myThread) break;
    
            dlg->SetDlgItemInt(IDC_STATIC, i, false);
            Sleep(100);
        }
        p_myThread = NULL;//线程结束注销或线程不存在
        return 0;
    }
    void CMFCApplication25Dlg::OnBnClickedButton1()
    {
        // TODO:  在此添加控件通知处理程序代码
        if (p_myThread==NULL) //若无线程启动成功
        {    //创建并启动线程
            p_myThread = AfxBeginThread(MyThreadFunction, (LPVOID)this);//this赋给线程入口函数的参数pParam
            flag_myThread = FALSE;
        }
        else
        {
            AfxMessageBox(_T("线程已经启动"));
        }    
    }
    
    
    void CMFCApplication25Dlg::OnBnClickedButton2()
    {
        // TODO:  在此添加控件通知处理程序代码
        if (p_myThread == NULL)//若无线程启动成功
        {
            AfxMessageBox(_T("线程不存在"));
        }
        else
        {
            p_myThread->SuspendThread();//暂停、挂起
        }
    }
    
    
    void CMFCApplication25Dlg::OnBnClickedButton3()
    {
        // TODO:  在此添加控件通知处理程序代码
        if (p_myThread == NULL)//若无线程启动成功
        {
            AfxMessageBox(_T("线程不存在"));
        }
        else
        {
            p_myThread->ResumeThread();//继续
        }
    }
    
    
    void CMFCApplication25Dlg::OnBnClickedButton4()
    {
        // TODO:  在此添加控件通知处理程序代码
        if (p_myThread == NULL)//若无线程启动成功
        {
            AfxMessageBox(_T("线程不存在"));
        }
        else
        {
            flag_myThread = TRUE;//终止
        }
    }
  • 相关阅读:
    Oracle创建表、修改表、删除表、约束条件语法
    Oracle中字符串截取常用方法总结
    Oracle 触发器(一)
    Oracle 触发器(二)
    Ajax-01
    Entity Framework-04
    Entity Framework-03
    Entity Framework-02
    Entity Framework-01
    DML、DCL、DDL
  • 原文地址:https://www.cnblogs.com/xixixing/p/11949313.html
Copyright © 2011-2022 走看看