请教MsgWaitForMultipleObjects的用法

Delphi > Windows SDK/API [问题点数:200分,结帖人CSDN]
等级
本版专家分:1677
结帖率 96.15%
等级
本版专家分:385
等级
本版专家分:385
zzh54zzh

等级:

MsgWaitForMultipleObjects用法

MsgWaitForMultipleObjects()不允许handles数组中有缝隙产生。所以当某个handle被激发了时,你应该在下一次调用MsgWaitForMultipleObjects()之前先把handles数组做个整理。紧压,不要只是把数组中的handle设为...

WaitForMultipleObject与MsgWaitForMultipleObjects用法

用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。 但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑...

MsgWaitForMultipleObjects 后遗症 与解决办法

调用SendMessage 产生死锁的问题分析 之后,我在界面程序中不再使用 WaitForSingleObject 了,而改用如下的函数 DWORD WaitObjectAndMsg(HANDLE hEventThread, DWORD dwMilliseconds) { BOOL bWait = TRUE; ...

多线程和MsgWaitForMultipleObjects

如果在工作线程中有可能涉及到了消息驱动的API,那么不能在主线程中使用WaitForSingleObject一类函数,而建议使用MsgWaitForMultipleObjects   while(TRUE) { DWORD result ; MSG msg ; result = ...

MsgWaitForMultipleObjects 返回值为 WAIT_OBJECT_0 + nCount 时候

http://bbs.csdn.net/topics/380187993  与waitformutipleobjects 不一样 , 需要处理消息的。

C++ 多线程阻塞 (多线程同步)(MsgWaitForMultipleObjects

在主线程定要禁止使用waitforsingleobject(),原因是会阻塞主线程的消息循环,所以必须使用另一种 MsgWaitForMultipleObjects,即可以让消息通过,下面就是一个基于MsgWaitForMultipleObjects与Event,实现多线程...

MFC 主线程等待子线程退出函数(MsgWaitForMultipleObjects

void WaitForThreadExit(void) { DWORD dwRet; MSG msg; int wait_count=4;//线程句柄有4个 int nExitThreadCount=0;... dwRet = MsgWaitForMultipleObjects(wait_count, hArray, FALSE, INFINITE, QS_...

MsgWaitForMultipleObjects

GetMessage()有点像特殊版本的WaitForSingleObject(),它等待消息而...问题是,如果你正在使用WaitForSingleObject()或WaitForMultipleObjects()等待某个对象被激发,你根本无法回到主消息循环中去。MsgWaitForMultiple

MsgWaitForMultipleObjects函数的一种用法

工程是VS2010,具体描述了如何在主线程中用MsgWaitForMultipleObjects等待子线程结束的同时,处理子线程发送的界面消息。

等待线程退出 MsgWaitForMultipleObjects和WaitForSingleObject

为什么要用MsgWaitForMultipleObjects? 主要是多线程、防止MFC消息阻塞、监控某些消息 在MFC多线程中如果要等待工作线程的退出(工作线程可能有控件的使用或者Postmessage) //草稿 while(TRUE) {  DWORD ...

主线程利用MsgWaitForMultipleObjects等待子线程结束时,同时处理子线程发送的窗口消息

假设我们有主线程A,子线程B、C、E、F。主线程和子线程操作模型如下图所示: 主线程A创建了四个线程B-D。子线程分别调用SendMessage函数发送界面信息到主线程,而主线程在创建完子线程后就会wait子线程退出。...

如何暂停主线程直到第二个线程的终止?

如何暂停主线程直到第二个线程的终止?来自 ...)作为翻译这篇短文的我在VC++开发中遇到了与 Ybbozman 相类似的问题,在主应用程序中(主进程-其实还是线程,称主线程也可),点击“查找”按钮

VC++ 中主线程等待子线程结束的方法

void WaitForThreadExit(void) { DWORD dwRet; //返回值 MSG msg; int wait_count=4; //线程句柄有4个 int nExitThreadCount=0; //记录线程退出个数 ... dwRet = MsgWaitForMultipleObj...

WaitForSingleObject和MsgWaitForMultipleObjects

WaitForSingleObject会阻塞对话框线程(Dialog thread),同时也会导致了对话框的消息循环机制被阻塞 ,而我在线程函数中会对对话框有一些UI操作(SetPos, SetWindowText),这些对对话框的UI操作实际上是通过线程向...

对话框中WaitForSingleObject等待线程退出导致程序阻塞的原因及解决

红色字为博主添加: 问题描述:AfxBeginThread创建一个线程后,在线程中操作UI的控件,例如EDIT。在UI的button里停止线程,并等待结束,一般用WaitforsingleObject,但是这个函数会导致UI消息阻塞,如果这个时候...

在Delphi中WaitForMultipleObjects的使用

procedure ThreadTest;stdcall; var Handles:TWOHandleArray; //Handle:THandle; Test:TTest; i:Integer; begin for i := 0 to 10 do begin Test := TTest.Create(False);...

程序退出时使用WaitForSingleObject导致程序阻塞的原因及解决方法

程序退出时使用WaitForSingleObject导致程序阻塞的原因及解决方法 2014-03-22 在程序退出时,我们通常都会使用WaitForSingleObject等函数等待指定的信号或等待线程析构。最近在开发程序时突然遇到了在析构...

在用户线程/主线程中推荐MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()...

多线程同步,采用WaitForSingleObject和WaitForMultipleObjects()函数出现卡死现象,采用MsgWaitForMultipleObjects代替可以解决此类问题。

C#延时函数的使用

在线程中如果需要延时,尽量不要使用Sleep()函数,这样会导致时间片切到别的线程中。 使用如下函数:  //Delay function public static void Delay(int milliSecond) { int start = Environment.TickCount; ...

windows主线程如何等待子线程结束

我在主线程中起了多个子线程,想等所有子线程结束主线程再继续做后面的事情。 但是我自起子线程的函数下面用WaitForMultipleObjects等待所有子线程结束,会阻塞主线程导致程序无反应死掉。 请各位大侠帮忙看下应该...

主线程使用WaitForSingleObject和MsgWaitForMultipleObjects等待线程返回值

多线程中,一般主线程创建线程(CreateThread)后,由工作线程函数完成具体内容,工作线程在返回时通过发消息PostMessage告诉主线程结果,主线程做相当处理。 项目需求: 总共有多条任务要执行,主线程需要需要...

MsgWaitForMultipleObjects

问题是,如果你正在使用WaitForSingleObject()或WaitForMultipleObjects()等待某个对象被激发,你根本无法回到主消息循环中去。 MsgWaitForMultipleObjects()函数类似WaitForMultipleObjects(),但它会在“对象...

项目总结(二)——改进的延时函数Delay

解决上一节中延时函数占CPU使用率(达50%)的第二种方法是利用消息机制,通过API函数MsgWaitForMultipleObjects等待消息或超时的到来,从而避免使用循环检测使CPU占用率过高。完整的改进版Delay函数代码如下:   ...

易语言多线程Api封装线程等待CPU优化

1、MsgWaitForMultipleObjects 2、WaitForSingleObject 3、SetThreadAffinityMask 4、SetThreadIdealProcessor 511遇见易语言多线程大漠多线程 模块源码 .子程序 线程_等待, 逻辑型, 公开, 等待一个线程,返回...

win32多线程等待消息函数

DWORD MsgWaitForMultipleObjects(  DWORD nCount,  LPHANDLE pHandles,  BOOL fWaitAll,   DWORD dwMilliseconds,  DWORD dwWakeMask );   参数   dwWakeMask 欲观察的用户输入消息,可以是:

MsgWaitForMultipleObjects 都做了什么

MsgWaitForMultipleObjects and the queue state One danger of the MsgWaitForMultipleObjects function is calling it when there are already messages waiting to be processed, because MsgW

WaitForSingleObject或MsgWaitForMultipleObjects函数无返回,程序直接退出问题

用C写的线程库,用C语言的测试程序

WaitForMultipleObjects与MsgWaitForMultipleObjects用法

用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。 但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑...

深入浅出MySQL数据库开发、优化与管理维护

第1部分 基础篇  第1章 MySQL的安装与配置    1.1 MySQL的下载     1.1.1 在Windows平台下下载MySQL     1.1.2 在Linux平台下下载MySQL    1.2 MySQL的安装     1.2.1 在Windows平台下安装MySQL     1.2.2 在Linux平台下安装MySQL    1.3 MySQL的配置     1.3.1 Windows平台下配置MySQL     1.3.2 Linux平台下配置MySQL    1.4 启动和关闭MySQL服务     1.4.1 在Windows平台下启动和关闭 MySQL服务     1.4.2 在Linux平台下启动和关闭MySQL服务    1.5 小结 显示全部信息第1部分 基础篇  第1章 MySQL的安装与配置    1.1 MySQL的下载     1.1.1 在Windows平台下下载MySQL     1.1.2 在Linux平台下下载MySQL    1.2 MySQL的安装     1.2.1 在Windows平台下安装MySQL     1.2.2 在Linux平台下安装MySQL    1.3 MySQL的配置     1.3.1 Windows平台下配置MySQL     1.3.2 Linux平台下配置MySQL    1.4 启动和关闭MySQL服务     1.4.1 在Windows平台下启动和关闭MySQL服务     1.4.2 在Linux平台下启动和关闭MySQL服务    1.5 小结   第2章 SQL基础    2.1 SQL简介    2.2 (My)SQL使用入门     2.2.1 SQL分类     2.2.2 DDL语句     2.2.3 DML语句     2.2.4 DCL语句    2.3 帮助的使用     2.3.1 按照层次看帮助     2.3.2 快速查阅帮助     2.3.3 常用的网络资源    2.4 小结   第3章 MySQL支持的数据类型    3.1 数值类型    3.2 日期时间类型    3.3 字符串类型     3.3.1 CHAR和VARCHAR类型     3.3.2 BINARY和VARBINARY类型     3.3.3 ENUM类型     3.3.4 SET类型    3.4 小结   第4章 MySQL中的运算符    4.1 算术运算符    4.2 比较运算符    4.3 逻辑运算符    4.4 位运算符    4.5 运算符的优先级    4.6 小结   第5章 常用函数    5.1 字符串函数    5.2 数值函数    5.3 日期和时间函数    5.4 流程函数    5.5 其他常用函数    5.6 小结   第6章 图形化工具的使用    6.1 MySQLAdministrator     6.1.1 连接管理     6.1.2 健康检查     6.1.3 备份管理     6.1.4 Catalogs    6.2 MySQLQueryBrower    6.3 phpMyAdmin     6.3.1 数据库管理     6.3.2 数据库对象管理     6.3.3 权限管理     6.3.4 导入导出数据    6.4 小结  第2部分 开发篇  第7章 表类型(存储引擎)的选择    7.1 MySQL存储引擎概述    7.2 各种存储引擎的特性     7.2.1 MyISAM     7.2.2 InnoDB     7.2.3 MEMORY     7.2.4 MERGE    7.3 如何选择合适的存储引擎    7.4 小结   第8章 选择合适的数据类型    8.1 CHAR与VARCHAR    8.2 TEXT与BLOB    8.3 浮点数与定点数    8.4 日期类型选择    8.5 小结   第9章 字符集    9.1 字符集概述    9.2 Unicode简述    9.3 汉字及一些常见字符集    9.4 怎样选择合适的字符集    9.5 MySQL支持的字符集简介    9.6 MySQL字符集的设置     9.6.1 服务器字符集和校对规则     9.6.2 数据库字符集和校对规则     9.6.3 表字符集和校对规则     9.6.4 列字符集和校对规则     9.6.5 连接字符集和校对规则    9.7 字符集的修改步骤    9.8 小结   第10章 索引的设计和使用    10.1 索引概述    10.2 设计索引的原则    10.3 BTREE索引与HASH索引    10.4 小结   第11章 视图    11.1 什么是视图    11.2 视图操作     11.2.1 创建或者修改视图     11.2.2 删除视图     11.2.3 查看视图    11.3 小结   第12章 存储过程和函数    12.1 什么是存储过程和函数    12.2 存储过程和函数的相关操作     12.2.1 创建、修改存储过程或者函数     12.2.2 删除存储过程或者函数     12.2.3 查看存储过程或者函数     12.2.4 变量的使用     12.2.5 定义条件和处理     12.2.6 光标的使用     12.2.7 流程控制    12.3 小结   第13章 触发器    13.1 创建触发器    13.2 删除触发器    13.3 查看触发器    13.4 触发器的使用    13.5 小结   第14章 事务控制和锁定语句    14.1 LOCKTABLE和UNLOCKTABLE    14.2 事务控制    14.3 分布式事务的使用     14.3.1 分布式事务的原理     14.3.2 分布式事务的语法     14.3.3 存在的问题    14.4 小结   第15章 SQL中的安全问题    15.1 SQL注入简介    15.2 应用开发中可以采取的应对措施     15.2.1 PrepareStatementBind-variable     15.2.2 使用应用程序提供的转换函数     15.2.3 自己定义函数进行校验    15.3 小结   第16章 SQLMode及相关问题    16.1 MySQLSQLMode简介    16.2 常用的SQLMode    16.3 SQLMode在迁移中如何使用    16.4 小结  第3部分 优化篇  第17章 常用SQL技巧和常见问题    17.1 正则表达式的使用    17.2 巧用RAND()提取随机行    17.3 利用GROUPBY的WITHROLLUP子句做统计    17.4 用BITGROUPFUNCTIONS做统计    17.5 数据库名、表名大小写问题    17.6 使用外键需要注意的问题    17.7 小结   第18章 SQL优化    18.1 优化SQL语句的一般步骤     18.1.1 通过showstatus命令了解各种SQL的执行频率     18.1.2 定位执行效率较低的SQL语句     18.1.3 通过EXPLAIN分析低效SQL的执行计划     18.1.4 确定问题并采取相应的优化措施    18.2 索引问题     18.2.1 索引的存储分类      18.2.2 MySQL如何使用索引     18.2.3 查看索引使用情况    18.3 两个简单实用的优化方法     18.3.1 定期分析表和检查表     18.3.2 定期优化表    18.4 常用SQL的优化     18.4.1 大批量插入数据     18.4.2 优化INSERT语句     18.4.3 优化GROUPBY语句     18.4.4 优化ORDERBY语句     18.4.5 优化嵌套查询     18.4.6 MySQL如何优化OR条件     18.4.7 使用SQL提示    18.5 小结   第19章 优化数据库对象    19.1 优化表的数据类型    19.2 通过拆分提高表的访问效率    19.3 逆规范化    19.4 使用中间表提高统计查询速度    19.5 小结   第20章 锁问题    20.1 MySQL锁概述    20.2 MyISAM表锁     20.2.1 查询表级锁争用情况     20.2.2 MySQL表级锁的锁模式     20.2.3 如何加表锁     20.2.4 并发插入(ConcurrentInserts)     20.2.5 MyISAM的锁调度    20.3 InnoDB锁问题     20.3.1 背景知识     20.3.2 获取InnoDB行锁争用情况     20.3.3 nnoDB的行锁模式及加锁方法     20.3.4 InnoDB行锁实现方式     20.3.5 间隙锁(Next-Key锁)     20.3.6 恢复和复制的需要,对InnoDB锁机制的影响     20.3.7 InnoDB在不同隔离级别下的一致性读及锁的差异     20.3.8 什么时候使用表锁     20.3.9 关于死锁    20.4 小结   第21章 优化MySQLServer    21.1 查看MySQLServer参数    21.2 影响MySQL性能的重要参数     21.2.1 key_buffer_size的设置     21.2.2 table_cache的设置     21.2.3 innodb_buffer_pool_size的设置     21.2.4 innodb_flush_log_at_trx_commit的设置     21.2.5 innodb_additional_mem_pool_size的设置     21.2.6 innodb_lock_wait_timeout的设置     21.2.7 innodb_support_xa的设置     21.2.8 innodb_log_buffer_size的设置     21.2.9 innodb_log_file_size的设置    21.3 小结   第22章 磁盘I/O问题    22.1 使用磁盘阵列     22.1.1 常见RAID级别及其特性     22.1.2 如何选择RAID级别     22.1.3 虚拟文件卷或软RAID    22.2 使用SymbolicLinks分布I/O    22.3 禁止操作系统更新文件的atime属性    22.4 用裸设备(RawDevice)存放InnoDB的共享表空间    22.5 小结   第23章 应用优化    23.1 使用连接池    23.2 减少对MySQL的访问     23.2.1 避免对同一数据做重复检索     23.2.2 使用查询缓存     23.2.3 增加CACHE层    23.3 负载均衡     23.3.1 利用MySQL复制分流查询操作     23.3.2 采用分布式数据库架构    23.4 其他优化措施    23.5 小结  第4部分 管理维护篇  第24章 MySQL高级安装和升级    24.1 Linux/UNIX平台下的安装     24.1.1 安装包比较     24.1.2 安装RPM包     24.1.3 安装二进制包     24.1.4 安装源码包     24.1.5 参数设置方法    24.2 源码包安装的性能考虑     24.2.1 去掉不需要的模块     24.2.2 只选择要使用的字符集     24.2.3 使用静态编译以提高性能    24.3 升级MySQL    24.4 MySQL降级    24.5 小结   第25章 MySQL中的常用工具    25.1 mysql(客户端连接工具)     25.1.1 连接选项     25.1.2 客户端字符集选项     25.1.3 执行选项     25.1.4 格式化选项      25.1.5 错误处理选项    25.2 myisampack(MyISAM表压缩工具)    25.3 mysqladmin(MySQL管理工具)    25.4 mysqlbinlog(日志管理工具)    25.5 mysqlcheck(MyISAM表维护工具)    25.6 mysqldump(数据导出工具)    25.7 mysqlhotcopy(MyISAM表热备份工具)    25.8 mysqlimport(数据导入工具)    25.9 mysqlshow(数据库对象查看工具)    25.10 perror(错误代码查看工具)    25.11 replace(文本替换工具)    25.12 小结   第26章 MySQL日志    26.1 错误日志    26.2 二进制日志     26.2.1 日志的位置和格式     26.2.2 日志的读取     26.2.3 日志的删除     26.2.4 其他选项    26.3 查询日志     26.3.1 日志的位置和格式     26.3.2 日志的读取    26.4 慢查询日志     26.4.1 文件位置和格式     26.4.2 日志的读取     26.4.3 其他选项    26.5 小结   第27章 备份与恢复    27.1 备份/恢复策略    27.2 逻辑备份和恢复     27.2.1 备份     27.2.2 完全恢复     27.2.3 基于时间点恢复     27.2.4 基于位置恢复    27.3 物理备份和恢复     27.3.1 冷备份     27.3.2 热备份    27.4 表的导入导出     27.4.1 导出     27.4.2 导入    27.5 小结   第28章 MySQL权限与安全    28.1 MySQL权限管理     28.1.1 权限系统的工作原理     28.1.2 权限表的存取     28.1.3 账号管理    28.2 MySQL安全问题     28.2.1 操作系统相关的安全问题     28.2.2 数据库相关的安全问题    28.3 其他安全设置选项     28.3.1 old-passwords     28.3.2 safe-user-create     28.3.3 secure-auth     28.3.4 skip-grant-tables     28.3.5 skip-network     28.3.6 skip-show-database    28.4 小结   第29章 MySQL复制    29.1 安装配置    29.2 主要复制启动选项     29.2.1 log-slave-updates     29.2.2 master-connect-retry     29.2.3 read-only     29.2.4 指定复制的数据库或者表     29.2.5 slave-skip-errors    29.3 日常管理维护     29.3.1 查看从服务器状态     29.3.2 主从服务器同步维护     29.3.3 从服务器复制出错的处理     29.3.4 logevententryexceededmax_allowed_packet的处理     29.3.5 多主复制时的自增长变量冲突问题     29.3.6 查看从服务器的复制进度    29.4 切换主从服务器    29.5 小结   第30章 MySQLCluster    30.1 MySQLCluster架构    30.2 MySQLCluster的配置     30.2.1 MySQLCluster的版本支持     30.2.2 管理节点配置步骤     30.2.3 SQL节点和数据节点的配置    30.3 开始使用Cluster     30.3.1 Cluster的启动     30.3.2 Cluster的测试     30.3.3 Cluster的关闭    30.4 维护Cluster     30.4.1 数据备份     30.4.2 数据恢复     30.4.3 日志管理    30.5 小结   第31章 MySQL常见问题和应用技巧    31.1 忘记MySQL的root密码    31.2 如何处理MyISAM存储引擎的表损坏     31.2.1 方法一     31.2.2 方法二    31.3 MyISAM表超过4GB无法访问的问题    31.4 数据目录磁盘空间不足的问题     31.4.1 对于MyISAM存储引擎的表     31.4.2 对于InnoDB存储引擎的表    31.5 DNS反向解析的问题    31.6 mysql.sock丢失后如何连接数据库    31.7 同一台服务器运行多个MySQL数据库    31.8 客户端怎么访问内网数据库    31.9 小结

jdk1.8 64位官方正式版 jdk-8u91-windows

jdk1.8 64位官方正式版 jdk-8u91-windows

相关热词 c# 获取泛型参数 c# 获取引用变量地址 c# 加载系统自带的字体 c# unity 结构体 c# 路径提示拒绝访问 c# 换行连接 c# 创建接口 c# 取绝对值函数 c# 打印机首选项 c# json通用类