zoukankan      html  css  js  c++  java
  • MFC-线程控制(暂停,继续,终止)

    VS2012

    CWinThread* g_pThreadA = NULL;
    BOOL g_bRunningA = FALSE;
    
    
    /*
        创建线程
    */
    UINT DemoA(LPVOID PpARAM)
    {
        for (int i = 0; i < 100; i++)
        {
            if (!g_bRunningA)
            {
                break;
            }
            ::SetDlgItemInt(AfxGetApp()->m_pMainWnd->m_hWnd,IDC_STATIC_OUTPUT,i,false);
            Sleep(1000);
        }
        g_pThreadA = NULL;
        return 0;
    }
    
    
    /*
        启动线程
    */
    void CDemoDlg::OnBnClickedButton1()
    {
        // TODO: 在此添加控件通知处理程序代码
    
        //创建线程
        if (g_pThreadA == NULL)
        {
            g_pThreadA = AfxBeginThread(DemoA, NULL);//传参数不用为NULL
            g_bRunningA = TRUE;
        }
        else
        {
            AfxMessageBox("线程已经启动");
        }    
    }
    
    
    /*
        暂停线程
    */
    void CDemoDlg::OnBnClickedButton2()
    {
        // TODO: 在此添加控件通知处理程序代码
    
        if (g_pThreadA == NULL)
        {
            AfxMessageBox("线程不存在");
        }
        else
        {
            g_pThreadA->SuspendThread();
        }
    }
    
    
    /*
        继续线程
    */
    void CDemoDlg::OnBnClickedButton3()
    {
        // TODO: 在此添加控件通知处理程序代码
    
        if (g_pThreadA == NULL)
        {
            AfxMessageBox("线程不存在");
        }
        else
        {
            g_pThreadA->ResumeThread();
        }
    }
    
    
    /*
        终止线程
    */
    void CDemoDlg::OnBnClickedButton4()
    {
        // TODO: 在此添加控件通知处理程序代码
        if (g_pThreadA == NULL)
        {
            AfxMessageBox("线程不存在");
        }
        else
        {
            g_bRunningA = FALSE;
        }
    }

    Caesar卢尚宇

    2021年1月6日

  • 相关阅读:
    java中的lamda表达式
    Arrays.sort()中Lambda表达式
    检索中的函数及不同范围的处理
    2014.6.24
    2014.6.23
    第六天培训
    第五天培训
    第四天培训
    第三天培训!
    第二天培训
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14243950.html
Copyright © 2011-2022 走看看