CWinThread* p_myThread;//创建线程指针
BOOL flag_myThread = FALSE;//是否终止 //头文件中声明(放类内) static UINT MyThreadFunction(LPVOID pParam);//定义线程入口函数
UINT CMFCApplication25Dlg::MyThreadFunction(LPVOID pParam) //线程入口函数,具体实现
{
CMFCApplication25Dlg* dlg = (CMFCApplication25Dlg*)pParam;
for (int i = ; i <= ; i++)
{
if (flag_myThread) break; dlg->SetDlgItemInt(IDC_STATIC, i, false);
Sleep();
}
p_myThread = NULL;//线程结束注销或线程不存在
return ;
}
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;//终止
}
}

MFC 线程启动、暂停、继续、终止的更多相关文章

  1. C# winform 多线程异步操作线程启动暂停与恢复

    /// <summary> /// 线程控制模块 /// </summary> private ManualResetEvent manualResetEvent = new ...

  2. java 线程实现、线程暂停和终止 、线程联合join、线程基本信息获取和设置、线程优先级

    转载地址:速学堂 https://www.sxt.cn/Java_jQuery_in_action/eleven-inheritthread.html 1. 通过继承Thread类实现多线程 继承Th ...

  3. MFC 线程创建方式

    MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作.主UI线程获取到工作线程发送的信息来刷新界面. 不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC ...

  4. 【Java 语言】Java 多线程 一 ( 线程启动 | 线程中断 )

    一. 线程启动 线程启动 : -- 1. 继承 Thread 运行线程 : 重写 Thread 类的 run 方法, 然后执行该线程; -- 2. 实现 Runnable 接口, 并运行线程; -- ...

  5. c# 线程启动while(true) 死循环,里边的return导致线程退出情况,查错

    写了一个线程 线程下启动了一个循环 while(true) { 里边有个判断 如果为空不操作, 有余这个线程是后加的,老程序里边因为有个return没关注,导致线程退出而不能不听的监控 } 线程启动一 ...

  6. Java多线程并发01——线程的创建与终止,你会几种方式

    本文开始将开始介绍 Java 多线程与并发相关的知识,多谢各位一直以来的关注与支持.关注我的公众号「Java面典」了解更多 Java 相关知识点. 线程的创建方式 在 Java 中,用户常用的主动创建 ...

  7. ManualResetEvent实现线程的暂停与恢复

    背景 前些天遇到一个需求,在没有第三方源码的情况下,刷新一个第三方UI,并且拦截到其ajax请求的返回结果.当结果为AVALIABLE的时候,停止刷新并语音提示,否则继续刷新. 分析这个需求,发现需要 ...

  8. 利用ManualResetEvent来来控制异步调用的打印的线程的暂停和恢复(转)

    利用ManualResetEvent来来控制异步调用的打印的线程的暂停和恢复 打印过程可能很长,这时候有可能需要暂停下来做一些事情,然后回来继续接着打印 打印过程中有2个线程:一个是程序运行的主线程, ...

  9. Android系统--输入系统(七)Reader_Dispatcher线程启动分析

    Android系统--输入系统(七)Reader_Dispatcher线程启动分析 1. Reader/Dispatcher的引入 对于输入系统来说,将会创建两个线程: Reader线程(读取事件) ...

随机推荐

  1. Oracle快速运行一指禅

      对于oracle数据库下的企业级应用开发,经常会使用到新建用户,新建表空间以及数据的迁移工作.虽然目前互联网存在很多单个问题的解决方案,但是比较零散,本博文结合研发兄弟们的实际现状,提供一套完整初 ...

  2. java--键盘输入任意数字进行求和

    思路,我将键盘输入的数放入数组,然后便利数组进行求和 package com.test.day01; import java.util.Scanner; public class Test { pub ...

  3. 最长回文 HDU - 3068(马拉车算法)

    Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入 ...

  4. Jmeter之JSON Path Extractor的使用(JSON-handle下载安装和使用)

    jp@gc - JSON Path Extractor和“正则表达式提取器”使用效果一样. 他的作用单一,只提取json数据 jp@gc - JSON Path Extracto 变量名自己定义,js ...

  5. MyEclipse10.0 采用插件方式安装 SVN

    一.到官方上下载svn1.8.3,下载后的文件名叫site-1.8.3.zip 地址:http://subclipse.tigris.org/servlets/ProjectDocumentList? ...

  6. idea的EasyCode使用

    EasyCode可以自动根据表格生成:entity,dao,service,serviceImpl,controller 使用方法: 一.安装EasyCode插件: File-setting-Plug ...

  7. 说说css hack,说真的,我也是才去了解这个东西

    之前在很多地方看到css hack,今天狠下心,看看到底是什么鬼,所有我去百度了,然后看了一篇文章,然后写个小总结. css hack就是通过加一些特定的符号,不同的浏览器可以识别特定符号的样式,以此 ...

  8. java Spring boot项目简单说明

    前言 一直从事.NET开发,但一直有种想去探索Java世界的冲动,今天终于有时间来尝试一下,以下是自己探索过程的简要记录. 一.开发工具 开发工具选用 IntelliJ IDEA社区版(免费),安装教 ...

  9. Python的Struct模块

    python strtuct模块主要在Python中的值于C语言结构之间的转换.可用于处理存储在文件或网络连接(或其它来源)中的二进制数据. #!/usr/bin/env python # -*- c ...

  10. django 文件上传样例以及遇到的一些问题

    使用django上传文件 主流有两种方法 from表单以及ajax,为了自由度高一点,选择了ajax来实现文件的上传 前端部分代码如下: 主要关注 一 有一个文件上传(type='file')的按钮, ...