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;//终止
        }
    }
  • 相关阅读:
    HtmlEncode 和 HtmlDecode
    Visual Studio .Net 的一些小技巧(2)
    Array和ArrayList的区别
    c#中 ?? 是什么意思?
    带有图片预览功能的上传表单 上传预览
    Js实现Repeater全选/反选 功能 终极解决方案
    处理URL重写后postback重写失效的问题 .browser文件
    在TreeView中使用CheckBox(c#)
    SQL操作全集
    智能仓库管理系统方案(一)
  • 原文地址:https://www.cnblogs.com/xixixing/p/11949313.html
Copyright © 2011-2022 走看看