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 例子( 一) 的相关文章

  • C++ Builder vs Delphi vs MFC

    我正在学习MFC 发现它不太好用 我听说过很多关于 Delphi 的事 对 Delphi 的研究让我接触到了 C Builder C Builder 是否提供了 C MFC 的严肃且良好的替代方案 C Builder 比 MFC 更好吗 C
  • 具有透明背景的CWnd

    我想创建一个基于 CWnd 的类 它将引入具有透明背景的控件 只要内容是静态的 创建一个控件并用透明背景绘制其内容对我来说没什么大不了的 问题是当我想创建一个内容不断变化的控件时 这是因为我不知道如何用父背景删除控件的内容 一般情况下可能不
  • 如何最好地避免 C++/CLI 本机类型中的双重转换

    传统上 我一直使用 MFC 扩展 dll 并使用 dllimport dllexport 导入 导出 但是 当 dll 更改为使用 clr 时 此方法的成本会变得很高 因为调用可能会导致双重转换 我现在的性能受到了巨大的打击 需要停止双重重
  • 将简单的 MFC CView/CDocument/CSingleDocTemplate 应用程序转换为 ActiveX 控件

    我有一个相当简单的 MFC 应用程序 它只定义了自己的子类CDocument CView and CFrameWnd并通过使用它们CSingleDocTemplate在视图的树中显示文档的只读内容 都是非常标准的MFC MVC 我现在需要转
  • MFC 控件上的文本 - Unicode 字符(例如日语)被截断

    背景 我正在开发一个 C MFC 应用程序 我们已经将其转换为显示 unicode 字符以支持外语 在大多数情况下 这是成功的并且 unicode 字符显示正确 但我遇到了一个问题 某些控件上的某些文本被截断 Example 在这里 您可以
  • AfxGetAppName() 返回垃圾字符

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

    我需要能够即时创建指南 MFC中有没有办法做到这一点 我了解了如何在 net 中做到这一点 但我们还没有做到这一点 如果没有 您是否有一些我可以使用的代码的指针 don t forget to add Rpcrt4 lib to your
  • MFC中如何将BYTE数组转换为CString?

    如何在 MFC 中将 BYTE 数组转换为 CString 试试这个 例如 如果 x 是你的字节数组 那么 BYTE x 5 x 0 A x 1 0 x 2 B x 3 C x 4 0 CString str LPCSTR x sizeof
  • 如何向 CMFCPopupMenu 添加图标?

    我想用CMFCPopupMenu用于右键单击期间的弹出菜单 如何添加图标CMFCPopupMenu 这是我在基本 MFC 应用程序中尝试的示例代码 CMFCPopupMenu TestCMFCPopMenu new CMFCPopupMen
  • 如何找到激活时打开给定 HMENU 的菜单项(如果有)?

    我想用原型实现一个功能 Locates the menu item of the application which caused the given menu mnu to show up return true if the given
  • 如何调整 CWnd 内 WPF 控件的大小?

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

    例如 COMDLG32 DLL 隐式链接到以下系统 DLL 以及其他 xmllite dll dll srvcli dll wkscli dll 链接信息库 netutils dll 微星 dll 由于这些是由操作系统隐式加载的 而不是使用
  • 想要将 ColeDateTime 转换为 CTime

    我正在从数据库中读取日期时间ColeDateTime格式 我想将其转换为CTime获取日期 月份 年份和时间 CString repDt this will hold the datetime which i read from Datab
  • MinGW支持MFC吗?

    我已经使用 MinGW 开发了 WinAPI 应用程序 没有出现任何问题 现在 我可以用 MFC 做同样的事情吗 我只是在这里猜测 但我认为您需要购买 Visual Studio 的副本才能获得使用 MFC 的许可证 MFC 也不因其对 C
  • .NET(或 MFC)的高速图形控件?

    我需要编写一个数字示波器类型的应用程序 有很多很棒的静态绘图控件 但我需要一些可以绘制每秒处理 4000 个样本的 16 条轨迹的东西 有人知道 NET 的高速图形控件吗 我什至会选择 MFC 因为它可以封装到 NET 控件中 谢谢您的帮助
  • 如何在 MFC 中创建带圆角的进度控件?

    我需要在 MFC 应用程序中创建一个带圆角的进度条 我尝试过使用 CreateRoundRectRgn 和 SetWindowRgn 的组合 它具有使控件完全消失的效果 我还尝试使用透明的 GIF 覆盖层 该覆盖层将绘制在进度栏的顶部 但我
  • 具有键唯一性和按位置排序的 MFC 字典集合

    看着表上http msdn microsoft com en us library y1z022s1 28v vs 80 29 aspx core collection shape features http msdn microsoft
  • MFC 中位图背景绘制的线程类型

    我有一个 MFC 文档 视图 C 图形应用程序 它将所有绘图都绘制到离屏位图 然后将其复制到 OnDraw 方法中提供的 CDC 指针 在过去的几天里 我一直在寻找将绘图组件放置在单独的工作线程中 这样它就不会停止 GUI 当我执行此操作时
  • 在 MFC 中获取现有但非活动视图

    假设我想访问 MFC MDI 应用程序中文档类中的特定视图 如果它已打开 该视图当前可以是活动的 也可以是非活动的 如果我可以假设视图始终处于活动状态 我可以按照此说明进行操作 http support microsoft com kb 1
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2

随机推荐

  • 【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 线程参数