MFC终止线程实例

本程序基于前期我的博客文章《MFC用信号灯模拟工控机数字量输入信号实时采集实例(源码下载》

1、在主界面添加一个启动线程按钮,一个终止线程按钮。

2、在TheradDlg.h中相关代码

cpp 复制代码
class CTheradDlg : public CDialog
{
// Construction
public:	
	...   
  	CTheradDlg(CWnd* pParent = NULL);	// standard constructor  
    CWinThread* pThread; 
	bool isThreadBegin ;  //线程退出/执行控制
	void My_Func();
  static UINT My_TheradFunc(LPVOID lparam);
  ...
  }

3、在TheradDlg.cpp中相关代码

cpp 复制代码
void CTheradDlg::OnButton1() 
{
isThreadBegin  = true;            //运行线程执行
pThread = AfxBeginThread(My_TheradFunc,(LPVOID)this);

}

void CTheradDlg::OnButton2() 
{
isThreadBegin  = false;            //停止线程执行	
}

UINT CTheradDlg::My_TheradFunc(LPVOID lparam)//将窗口指针赋给无类型指针
 
{
 
     CTheradDlg *dlg = (CTheradDlg*)lparam;   //可以调用CTheradtDlg定义的类成员函数
        
    while (dlg-> isThreadBegin)
	{
		dlg->My_Func(); //线程要执行的函数(调用CTheradtDlg定义的类成员函数)
		
	}
 return TRUE;
     
}

运行程序

相关推荐
%xiao Q12 小时前
GESP C++四级-216
java·开发语言·c++
tianyuanwo13 小时前
深入浅出SWIG:从C/C++到Python的无缝桥梁
c语言·c++·python·swig
初次见面我叫泰隆13 小时前
Qt——2、信号和槽
开发语言·c++·qt
D_evil__13 小时前
【Effective Modern C++】第二章 auto:5. 优先使用 auto,而非显式类型声明
c++
玖釉-14 小时前
[Vulkan 学习之路] 26 - 图像视图与采样器 (Image View and Sampler)
c++·windows·图形渲染
一颗青果14 小时前
C++的锁 | RAII管理锁 | 死锁避免
java·开发语言·c++
AI视觉网奇14 小时前
ue c++ 编译常量
c++·学习·ue5
一分之二~14 小时前
回溯算法--解数独
开发语言·数据结构·c++·算法·leetcode
liu****14 小时前
第一章 Qt 概述
开发语言·c++·qt
休息一下接着来14 小时前
C++ 设计模式:Pimpl(Pointer to Implementation)
c++·算法·设计模式