TfxSleep,一个可以在等待超时期间处理Windows消息的函数,防止卡死

原创 2006年05月20日 03:25:00

在进行Windows编程时,经常需要使用Sleep()这个Windows标准API函数来实现延时等待。但该线程的最大问题在于,调用了Sleep后,整个线程全部被挂起。也不能处理Windows消息。

TfxSleep解决该问题。实现卡住等待超时的同时,可以处理Windows消息。

 

// 延时 ?时间, 期间能处理Windows事件

VOID  TfxSleep(ULONG ulMilliSeconds)

{

    DWORD lFirst = GetTickCount();

    MSG msg;

    do

    {

 

        if(PeekMessage(&msg,NULL, 0, 0, PM_REMOVE))

       {

           TranslateMessage( &msg );

           DispatchMessage( &msg );

       }

        Sleep(1);

    } while (GetTickCount() - lFirst < ulMilliSeconds);

 

}

用abort函数主动让进程abort/coredump, 有什么用处?------曾用此方法解决过一个低概率开机卡死的问题

之前玩过一段时间的嵌入式设备(如下叙述以手机为例)的软件开发, 当时出现了一个低概率问题: 系统开机会低概率卡死在某个模块中。 这个问题必须解决。 如果有问题的手机发布到用于手中, 假设...
  • stpeace
  • stpeace
  • 2017年03月25日 15:55
  • 1146

应对恶劣网络环境,为php-curl设置超时限制,防止服务器卡死

挖洋货这项目,因为没有公司的名头,也就无法备案,所以前端机放在阿里云香港ECS,另配一台阿里云杭州ECS来跑crontab——执行爬虫、保存图片到阿里云OSS等。最近觉得杭州ECS有点多余了(原本还有...

windows安装mysql到最后一步时卡死

重装mysql的时候,总是在提交配置后的最后一步,安装失败,进程管理器里显示程序无响应,mysql服务启动时报1067错误.整了好几天,用了网上好几种方法都没能成功,最后抱着试一试的态度用了以下步骤终...

Maven+SpringMVC+Eclipse软件安装配置,Maven报插件异常,Eclipse总是卡死的解决方法,导入一个maven工程后 一直显示importing maven project

1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project...

解决飞秋在Windows7经常卡死

1、打开“网络和共享中心” 2、打开“允许程序或功能通过Windows防火墙” 3、查看列表中的“飞秋”,把“家庭/工作”和“公用”选项都打上钩 4、 对列表...

windows程序界面卡死的原因

windows的UI程序都是消息驱动的,所以出现界面卡死,思考的方向是消息循环是不是能出现问题了。下面分析windows程序界面卡死的几个可能的原因: 主线程(UI线程)出现死循环。 如果...

故障案例:phpadmin点击打开一个数据库卡死

有用户反馈show processlist列表出现一堆查询,导致CPU直接跑满24核..... 后来查看ip来源于网页端的phpadmin,但是开发人员均反馈没有执行该操作,只是有同事点击打...

DynamicDataExchange(DDE)机制引发的卡死有一个bug

Dynamic Data Exchange(DDE)机制引发的卡死   有一个bug:在XP系统下,某些机器上ShellExecute在打开文件时会造成程序卡死,看了Dump文件,堆栈如下:   ...
  • wzsy
  • wzsy
  • 2016年04月01日 15:55
  • 560

WinCE7.0_FindWindow函数在线程中调用卡死的现象(2)

上接:WinCE7.0_FindWindow函数在线程中调用卡死的现象/* * 对于同一句FindWindow(NULL,L"TestFindWindow"); * 在按键响应中执行,耗时约为: 5m...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TfxSleep,一个可以在等待超时期间处理Windows消息的函数,防止卡死
举报原因:
原因补充:

(最多只允许输入30个字)