WinExec不仅会造成延迟,并且还会引起消息的重入。

以下是调用堆栈:

WinvoiceCC.exe!CWinvoiceCCDlg::OnMsgHttpReq(unsigned int wParam=38434384, long lParam=0)  行624
C++

mfc90d.dll!CWnd::OnWndMsg(unsigned int message=2564, unsigned int wParam=38434384, long lParam=0, long * pResult=0x0012e4dc)  行2018 + 0x11 字节
C++

mfc90d.dll!CWnd::WindowProc(unsigned int message=2564, unsigned int wParam=38434384, long lParam=0)  行1755 + 0x20 字节
C++

mfc90d.dll!AfxCallWndProc(CWnd * pWnd=0x0012f9b4, HWND__ * hWnd=0x0034062c, unsigned int nMsg=2564, unsigned int wParam=38434384, long lParam=0)  行240 + 0x1c 字节
C++

mfc90d.dll!AfxWndProc(HWND__ * hWnd=0x0034062c, unsigned int nMsg=2564, unsigned int wParam=38434384, long lParam=0)  行403
C++

mfc90d.dll!AfxWndProcBase(HWND__ * hWnd=0x0034062c, unsigned int nMsg=2564, unsigned int wParam=38434384, long lParam=0)  行441 + 0x15 字节
C++

user32.dll!_InternalCallWinProc@20()  + 0x28 字节


user32.dll!_UserCallWinProcCheckWow@32()  + 0xb7 字节


user32.dll!_DispatchClientMessage@20()  + 0x4d 字节


user32.dll!___fnDWORD@4()  + 0x24 字节

ntdll.dll!_KiUserCallbackDispatcher@12()  + 0x13 字节


user32.dll!_NtUserWaitForInputIdle@12()  + 0xc 字节


kernel32.dll!_WinExec@8()  + 0xaf 字节

WinvoiceCC.exe!CExternExeCmdService::Execute(const char * lpszCmd=0x004eef48, const char * lpszParams=0x024a2fd8)  行21 + 0x1d 字节
C++

WinExec可能会引起消息重入的更多相关文章

  1. rabbitmq之消息重入队列

    说起消息重入队列还得从队列注册消费者说起,客户端在向队列注册消费者之后,创建的channel也会被主队列进程monitor,当channel挂掉后,主队列进程(rabbit_amqqueue_proc ...

  2. 【WCF】服务并发中的“可重入模式”

    WCF服务实例的并发模式是在服务实现类上,使用 ServiceBehaviorAttribute 的 ConcurrencyMode 属性来指定.其值由 ConcurrencyMode 枚举来界定,这 ...

  3. 不可重入定时器Newlife.TimerX

    在.net常用的定时器类有下面三种,使用定时器时需要设定参数,如间断时间.定时器计溢出后的回调函数.延时.开始等,定时器的的主要方法有开始.终止等,不同的定时器实现上述的方法会有一些差异,本文会针对具 ...

  4. Use Reentrant Functions for Safer Signal Handling(译:使用可重入函数进行更安全的信号处理)

    Use Reentrant Functions for Safer Signal Handling 使用可重入函数进行更安全的信号处理 How and when to employ reentranc ...

  5. java高并发系列 - 第12天JUC:ReentrantLock重入锁

    java高并发系列 - 第12天JUC:ReentrantLock重入锁 本篇文章开始将juc中常用的一些类,估计会有十来篇. synchronized的局限性 synchronized是java内置 ...

  6. redis实现分布式锁需要考虑的因素以及可重入锁实现

    死锁 错误例子 解决方式  防止死锁 通过设置超时时间  不要使用setnx key   expire 20  不能保证原子性 如果setnx程序就挂了 没有执行expire就死锁了  reidis2 ...

  7. Redis分布式锁—Redisson+RLock可重入锁实现篇

    前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...

  8. C#中Timer使用及解决重入问题

    C#中Timer使用及解决重入问题 ★介绍 首先简单介绍一下timer,这里所说的timer是指的System.Timers.timer,顾名思义,就是可以在指定的间隔是引发事件.官方介绍在这里,摘抄 ...

  9. 可重入锁 公平锁 读写锁、CLH队列、CLH队列锁、自旋锁、排队自旋锁、MCS锁、CLH锁

    1.可重入锁 如果锁具备可重入性,则称作为可重入锁. ========================================== (转)可重入和不可重入 2011-10-04 21:38 这 ...

随机推荐

  1. Node.js——异步上传文件

    前台代码 submit() { var file = this.$refs.fileUpload.files[0]; var formData = new FormData(); formData.a ...

  2. 在 Windows Server 上搭建 *** 服务端(转载加亲测)

    转载自:https://diveng.io/build-shadowsocks-server-on-windows-server.html 下面的教程建议大家使用第一种方法安装,说是比较简单.我则使用 ...

  3. C++学习随笔

    今天试着变了下实验二里边的有关面向对象的实验,深深地觉得我对面向对象的编程的理解还是很浅显,以至于对于对象的调用也是瞎整.居然直接就去调用继承来的函数,连生成一个对象这种基础应用都不知道.对自己的基础 ...

  4. 使用迅为iTOP-iMX6开发板-uboot-修改默认环境变量

    iTOP-iMX6 开发板烧写好之后,默认是 android 系统 9.7 寸屏幕的系统参数和屏幕参数.如下图.本文档主要介绍如何修改默认启动参数. 1. 重要的环境变量比较重要的环境变量或者说经常使 ...

  5. scrapy 的分页爬取 CrawlSpider

    1.创建scrapy工程:scrapy startproject projectName 2.创建爬虫文件:scrapy genspider -t crawl spiderName www.xxx.c ...

  6. Tensorflow入门-上

    前置准备 在阅读本文之前,请确定你已经了解神经网络的基本结构以及前向传播.后向传播的基本原理,如果尚未了解,可以查看下文. 深度学习之神经网络 什么是TensorFlow? TensorFlow是Go ...

  7. C3P0连接池参数配置说明

    C3P0连接池参数配置说明 created by cjk on 2017.8.15 常用配置 initialPoolSize:连接池初始化时创建的连接数,default : 3(建议使用) minPo ...

  8. MyEclipse2017修改Web Context Root

    1,复制一个已经存在的项目,并修改项目名 2,选中项目右键选择properities,打开. 但是这里的web context root无法修改 3,删除web显示properties的所有属性,输入 ...

  9. 将java project打包成jar包,web project 打包成war包的几种演示 此博文包含图片

    转: http://blog.csdn.net/christine_ruan/article/details/7491559 http://developer.51cto.com/art/200907 ...

  10. Libjingle 库

    Libjingle 是google talk voice(语音聊天) 和 p2p interoperability(点对点操作)库,是提供了google talk,p2p文件共享和语音呼叫能力的组件集 ...