mfc c++ 多线程AfxBeginThread 例子( 一)

2023-11-01

AfxBeginThread 为用户界面线程,该函数的原型为:

CWinThread* AfxBeginThread(
AFX_THREADPROC pfnThreadProc, //线程函数地址,即线程函数的入口
LPVOID pParam, //线程参数
int nPriority = THREAD_PRIORITY_NORMAL, //线程优先级
UINT nStackSize = 0, //线程堆栈大小,默认为1M
DWORD dwCreateFlags = 0, //设置线程的标志位
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL //线程创建以后,会处于挂起
);

使用前面三个参数,后面不写则按默认值,如AfxBeginThread(MarkBtmThread1,this, THREAD_PRIORITY_HIGHEST );

线程优先级网上有很多,具体可以查查看,THREAD_PRIORITY_HIGHEST为高

下面给出一个多线程使用例子:

引入windows.h
声明线程:
static UINT MarkBtmThread1(LPVOID param11);
static UINT MarkBtmThread2(LPVOID param22);

新建开始按钮,在按钮内添加代码:

volatile bool g_MarkFlag1 = true;
volatile bool g_MarkFlag2 = true;
int a= 0;
int b= 0;
void CMSI_VC_DemoDlg::OnBnClickedAutoMark()
{
if(g_bCheckCard1==true)
{
AfxBeginThread(MarkBtmThread1,this,THREAD_PRIORITY_HIGHEST);//线程入口
}
if(g_bCheckCard2==true)
{
AfxBeginThread(MarkBtmThread2,this,THREAD_PRIORITY_HIGHEST); //两个线程优先级都为高
}
}
UINT CMSI_VC_DemoDlg::MarkBtmThread1(LPVOID param11)
{
CMSI_VC_DemoDlg dlg = (CMSI_VC_DemoDlg)param11;
while (g_MarkFlag1)
{
a++;
}
}
UINT CMSI_VC_DemoDlg::MarkBtmThread2(LPVOID param22)
{
CMSI_VC_DemoDlg dlg = (CMSI_VC_DemoDlg)param22;
while (g_MarkFlag1)
{
b++;
}
}

新建停止按钮

void CMSI_VC_DemoDlg::OnBnClickedStopmarkBtn()
{
g_MarkFlag1 =false;
g_MarkFlag2 =false;
}

——————–END——————————

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mfc c++ 多线程AfxBeginThread 例子( 一) 的相关文章

  • 如何将 INT64 写入 CString

    我正在 c windows 中编码 INT64 dirID 1 CString querySQLStr T querySQLStr Format L select from ImageInfo where FolderPath 64d di
  • 无法检索正则表达式匹配结果 - MFC / C++

    我正在阅读 HTML 页面并尝试检索其中的特定字符串 我有以下代码 std string str test GetString someString the string i have checked it it s basically a
  • 如何在禁用组框时禁用组框文本?

    我面临组框文本的问题 我通过调用 EnableWindow FALSE 禁用了组框 问题是组框标题没有变灰 谁能告诉我为什么会发生这种情况以及如何摆脱这个问题 这似乎是 comctrl32 dll 中的一个错误视觉风格 https lear
  • MFC> 将对话框连接到对话框类

    我在现有的资源文件中定义了一个新对话框及其控件 我还创建了一个新文件 它将处理从此对话框生成的事件 但我不确定如何连接这两者 是声明enum IDD IDD NEW DIALOG 连接两者所需的一切 或者我们应该添加一些其他声明 在 MFC
  • C++ Builder vs Delphi vs MFC

    我正在学习MFC 发现它不太好用 我听说过很多关于 Delphi 的事 对 Delphi 的研究让我接触到了 C Builder C Builder 是否提供了 C MFC 的严肃且良好的替代方案 C Builder 比 MFC 更好吗 C
  • 如何将 unicode 字符变成小写字母

    我在 VC MFC 中将 unicode 字符转换为小写字母时遇到问题 我在 CString 变量中有 unicode 字符 所以 使用英语 MakeLower 工作正常 我得到小写字母 但它无法将 unicode 字符转换为小写 我确实尝
  • 如何显示非模式对话框并立即在其中显示信息?

    我想在屏幕上显示一个无模式对话框并在其中显示一些信息 但是 如果我按照以下方式使用它 则会出现一些问题 function showdialog XXX heavy work update the dialog heavy work upda
  • 如何向现有 Win32 C++ 项目添加 MFC 支持?

    我正在创建一个 C 应用程序 它使用 Qt 创建 GUI 但是 我需要使用依赖于 MFC 的第三方库 用于 CString 等 无论如何 是否可以将 MFC 添加到我的应用程序中以允许我使用这个库 或者我需要自己重写它 I saw 这个问题
  • AfxGetAppName() 返回垃圾字符

    我的应用程序中有以下代码行 CString strAppName AfxGetAppName 有时会充满strAppName出现了垃圾字符 我不明白为什么 有人有主意吗 TIA 如果你改变的话这是可能的m pszAppName手动 在应用程
  • 如何在 MFC 中创建 GUI

    我需要能够即时创建指南 MFC中有没有办法做到这一点 我了解了如何在 net 中做到这一点 但我们还没有做到这一点 如果没有 您是否有一些我可以使用的代码的指针 don t forget to add Rpcrt4 lib to your
  • 如何发光最小。最大和关闭按钮?

    我按照以下指南使用 DWM API 创建自定义 Aero 框架 My work void CMainFrame OnActivate UINT nState CWnd pWndOther BOOL bMinimized CFrameWnd
  • 如何找到激活时打开给定 HMENU 的菜单项(如果有)?

    我想用原型实现一个功能 Locates the menu item of the application which caused the given menu mnu to show up return true if the given
  • 基于 C# .NET 文档的应用程序操作图

    我想开发一个新的应用程序 用户可以在其中创建描述流程的图表 我认为在这种情况下 基于文档的应用程序是我唯一的选择 我熟悉C net C MFC 和J2EE 根据您的经验 实现这一目标的最佳方法是什么 我应该关注哪个平台 图表必须由方框和箭头
  • 如何调整 CWnd 内 WPF 控件的大小?

    我正在托管 WPFUserControlMFC 内部CWnd 它工作得很好 我现在需要弄清楚如何与其父控件一起调整控件的大小 我已经迷上了OnSize我正在打电话GetWindowRect并将结果设置为我的控件 如下所示 void CChi
  • 如何停止对辅助隐式加载 DLL 的 DLL 劫持

    例如 COMDLG32 DLL 隐式链接到以下系统 DLL 以及其他 xmllite dll dll srvcli dll wkscli dll 链接信息库 netutils dll 微星 dll 由于这些是由操作系统隐式加载的 而不是使用
  • 如何通过单击 MainFrame 内的按钮来更改 MFC 视图

    我想通过单击窗口内的按钮来更改呈现的视图像这样 https i stack imgur com 3IA2o png 我的项目设置 我制作了一个没有文档 视图支持的 MFC 项目 SDI 我在设计器中又创建了两个视图并向它们添加了类 新的视图
  • 如何在VC++/MFC中替换字符串中两个子字符串之间的字符串?

    假设我有一个 CString 对象 strMain AAAABBCCCCCCDDBBCCCCCCCCDDDAA 我还有两个较小的字符串 例如 strSmall1 BB strSmall2 DD 现在 我想替换 strMain 中 strSm
  • 您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用吗?

    您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用来更改应用程序的外观吗 如果是这样 它是如何完成的 这个想法是使用随 MSVC 2008 发布的 MFC 功能包来更改控件 例如按钮 的形状 颜色等 不 不能这样做
  • 实现批量记录获取

    在程序开始时 我需要将数据从 MS Access 数据库 mdb 读取到下拉控件中 这样做是为了每当用户在该控件中键入内容时 应用程序都可以自动完成 不管怎样 从数据库中读取数据花了很长时间 所以我想我应该实现批量行获取 这是我的代码 CS
  • 捕获由纯 C++ dll 中的 MFC 应用程序生成的 Windows 消息

    首先 这可能吗 我有一个与某些硬件接口的第三方 dll 它是用MFC编写的 我 从 dll 供应商处 收到了一个示例 Visual Studio 2010 解决方案 该解决方案只有一个项目 调用相关第三方 dll 的 MFC 应用程序 ex

随机推荐

  • 【PTA】判断一个数是否为回文数

    1 题目 如果一个数与它的反转数相等 则该数为回文数 输入一个数 判断是否为回文数 输入格式 输入一个数 输出格式 若XX是回文数 则输出 XX 是回文数 若不是 则输出 XX 不是回文数 输入样例1 6234326 输出样例1 62343
  • radius认证服务器系统,03-Radius认证配置举例

    RADIUS 是一种用于在需要认证其链接的网络访问服务器 NAS 和共享认证服务器之间进行认证 授权和记帐信息的文档协议 RADIUS在运维审计系统中 主要体现的是认证功能 收集RADIUS服务器信息 IP地址 RADIUS端口号 RADI
  • 快速理解python中的可迭代对象、迭代器、生成器

    快速学会python中的可迭代对象 迭代器 生成器 今天周一 又要开始新的一周的学习了 加油鸭 多学一点不吃亏哈哈 迭代 什么是迭代 迭代就是将重复的代码进行执行 处理相似的数据集 并且上一个迭代的结果会给到下一次 作为初始化值进行下一次的
  • 利用Jmeter对禅道进行性能测试

    前言 jmeter工具的学习和使用 一 背景 前段时间没事 自己在虚拟机上搭建了一个禅道环境 并在外机上安装jmeter 编写脚本对禅道进行简单的性能测试 二 操作步骤 1 环境搭建 1 1 禅道环境搭建 本地电脑安装VMware Work
  • win11系统23年6月最新anaconda安装教程及配置环境变量

    win11系统23年6月最新anaconda安装教程及配置环境变量 官网下载anaconda 安装anaconda 注意 接下来这一步如果选择Just Me 后续则可选择自动 手动配置环境变量 如果选择ALL Users 则只能手动配置环境
  • 大模型AI:城市规划新的技术转换点

    引言 城市规划作为一项事业长期以来处在这样一种矛盾的境地 一方面干预的对象几乎是世界上最复杂的系统 城市系统 而另一方面城市规划和公共政策的强绑定属性 以及处在技术应用下游的定位使得行业并不对技术敏感 这就导致从业者往往采用传统的方法来解决
  • 复习-单项链表

    SList h pragma once typedef int SDataType typedef struct SListNode SDataType data struct SListNode PNext Node PNode 链表的结
  • 误删/usr/lib/x86_64-linux-gnu动态库文件修复

    问题 在阿里云上部署区块链时 因为缺少一些动态库 想偷懒从另外一个服务器上直接copy动态库 usr lib x86 64 linux gnu 结果先删除本地的 usr lib x86 64 linux gnu 结果造成好多命令用不了 例如
  • 为什么祖传代码被称为「屎山」?这个回答简直太形象了

    经常听说祖传代码会被人称之为 屎山 不同人可能有不同的体会 最近看到一个回答 简直是把这个阐述得 活灵活现 大家来感受下吧 阅读本文大概需要 3 分钟 作者 Avalon 原文链接 https www zhihu com question
  • win10时间 服务器未响应,win10系统程序未响应的解决方法

    win10系统想必大家都非常熟悉吧 然而有时候可能会碰到win10系统win10系统程序未响应的问题 比如近日有用户到本站反映说win10系统程序未响应的问题 该怎么处理win10系统程序未响应的问题呢 我们按照 1 在win10桌面右下角
  • 【二十六】springboot实现多线程事务处理

    springboot篇章整体栏目 一 springboot整合swagger 超详细 二 springboot整合swagger 自定义 超详细 三 springboot整合token 超详细 四 springboot整合mybatis p
  • Java之 jdbc 工具类

    继学习简单的jdbc之后发现会有很多重复的代码 所以要抽离出来制作出一个jdbc工具类 并且要有一个properties文件更改jdbc的一些配置 首先由一个配置文件 jdbc properties driver com mysql jdb
  • SQL语句中查找字符的位置

    语法如下 instr string1 string2 start position nth appearance string1 源字符串 要在此字符串中查找 string2 要在string1中查找的字符串 start position
  • Internet Explorer (IE) 模式疑难解答和常见问题解答

    备注 11 Internet Explorer 11 桌面应用程序将于 2022 年 6 月 15 日停用并停用支持 To see the list of what s in scope see the Internet Explorer
  • CentOS7安装nginx

    安装yum utils yum install y yum utils 配置nginx repo vi etc yum repos d nginx repo并填入 nginx stable name nginx stable repo ba
  • 多项式求和(C语言)

    Problem Description 多项式的描述如下 1 1 2 1 3 1 4 1 5 1 6 现在请你求出该多项式的前n项的和 Input 输入数据由2行组成 首先是一个正整数m m lt 100 表示测试实例的个数 第二行包含m个
  • 报错:A complete log of this run can be found

    报错 npm ERR Cannot read property parent of null npm ERR A complete log of this run can be found in npm ERR C Users Aren A
  • python在文件末尾写入_python中 对文件的读写操作 以及如何边写入 边保存flush()...

    首先 python中打开文件大致常用的几类如下 1 写入文件write 这种写入方式会将原文本删除 重新写入 File open test txt w 2 读取文件read File open test txt a 3 添加写入 这种写入是
  • 高等代数 多项式环(第7章)1 一元多项式环,整除关系,带余除法

    一 一元多项式环 7 1 1 一元多项式 1 一元多项式的定义 2 一元多项式的次数 3 一元多项式的运算 另外 可以证明 K x K x K x 是数域
  • mfc c++ 多线程AfxBeginThread 例子( 一)

    AfxBeginThread 为用户界面线程 该函数的原型为 CWinThread AfxBeginThread AFX THREADPROC pfnThreadProc 线程函数地址 即线程函数的入口 LPVOID pParam 线程参数