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;
     
}

运行程序

相关推荐
@卞4 分钟前
ST 表相关练习题
数据结构·c++·算法
报错小能手6 分钟前
C++笔记 bind函数模板
开发语言·c++·笔记
Vanranrr18 分钟前
表驱动编程实战:让 UI 逻辑既清晰又好维护
c++·ui
Vanranrr19 分钟前
车机项目中的 Widget 设计反思:从“能用”到“好用”的改进方向
c语言·c++·架构
2501_9411115231 分钟前
C++中的适配器模式
开发语言·c++·算法
2501_9411119432 分钟前
C++中的适配器模式变体
开发语言·c++·算法
2501_941111771 小时前
C++代码移植性设计
开发语言·c++·算法
yy_xzz1 小时前
【OpenCV + VS】C++实现动态下雪特效
c++·人工智能·opencv
橘子真甜~2 小时前
C/C++ Linux网络编程5 - 网络IO模型与select解决客户端并发连接问题
linux·运维·服务器·c语言·开发语言·网络·c++
2501_941111462 小时前
C++中的原型模式
开发语言·c++·算法