您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10895|回复: 0
打印 上一主题 下一主题

[C++学习资料] 非滞后式延迟执行

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
, d9 C0 y: V+ m& J5 {& C5 q; `* x建立 xsleep.cpp和xsleep.p文件
0 B  h' s) S$ C2 o+ q; ]  I/ P& exsleep.cpp文件代码如下
% H( r  P% f- G8 {) Y; D
  1. //Download by http://www.cncml.com
    3 a% ?0 u0 G" c/ i# x5 q
  2. #include <windows.h>
    2 y. R' K+ m8 t
  3. #include <stdafx.h>* }* W. x7 ?4 W; P$ j6 Q

  4. * k& R0 p4 H7 U9 Y
  5. // This structure is used internally by the XSleep function ! A: \. t+ l& Z8 D
  6. struct XSleep_Structure
    4 V3 u8 p! c: X  K. H6 w& K3 b6 |, B
  7. {6 \9 E: S. c, {4 d& X
  8.         int duration;
    6 W! T* O( H5 x5 ~
  9.         HANDLE eventHandle;2 _" _: ]( ]9 Y
  10. };! ~  v( U$ A+ F" t+ B4 S: K

  11. # o. H2 v5 P; V. C
  12. 8 ~7 f9 O( u7 _. n, w: l( P% g" \7 B
  13. //////////////////////////////////////////////////////////////////////
    $ z  K: Y8 D1 q% ^( U; ^6 A! E
  14. // Function  : XSleepThread()
    1 ^  n& i: Y( D* J( a' R
  15. // Purpose   : The thread which will sleep for the given duration
    3 j9 M$ S/ B4 x2 q. d3 \' e3 R
  16. // Returns   : DWORD WINAPI
    9 B" r) |4 q5 a3 s  I! ^1 [
  17. // Parameters:      
    . O' c/ e' P) {, C' Z5 ?- l
  18. //  1. pWaitTime -
    % R. Z% I! R% U% B& C; P9 e# ]
  19. //////////////////////////////////////////////////////////////////////" o( O: U- |" I( e, S/ L1 l  ]
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    % J2 _( _% f% X- j2 y- `/ W; E! C1 w" H
  21. {
    , K3 n3 l; e1 Z$ y- h4 k6 B- C* a
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;, m; h) I% y8 M2 }; o

  23. ' F* ^1 B# `$ b7 C" l# c
  24.         Sleep(sleep->duration);9 j4 L, k# v* I1 W* i. i5 N
  25.         SetEvent(sleep->eventHandle);8 i  {  b6 `1 r( `
  26.   s% n* ^' t, n+ ^  k
  27.         return 0;
    . A# [2 l8 Y/ V
  28. }9 ]: r9 y) I1 o3 K

  29. ; [+ O7 S4 j9 Y5 j4 \
  30. //////////////////////////////////////////////////////////////////////
    / l; @& T& R' f2 |0 u" [% P
  31. // Function  : XSleep()* O9 b% K' V* L: ~
  32. // Purpose   : To make the application sleep for the specified time$ _4 ?' z' m! H. d/ a) T1 Y
  33. //             duration.
    ! }3 Z$ R" Y. ]6 m
  34. //             Duration the entire time duration XSleep sleeps, it
    : G7 \, i/ ]$ p) ^; e  }  e5 _
  35. //             keeps processing the message pump, to ensure that all
    ' J  e' n( n  l3 O! J1 I
  36. //             messages are posted and that the calling thread does) J8 P' N) Z5 I: h% `
  37. //             not appear to block all threads!! e; m2 k. _- g$ u4 J
  38. // Returns   : none
    . l3 @: |) Q6 `6 z5 H& ]- o
  39. // Parameters:       6 `% Z1 C1 o8 g5 e
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds., i# a. G: w2 H  W: ]
  41. //////////////////////////////////////////////////////////////////////
    - [1 y9 h& y2 R2 l7 p0 g3 z
  42. void XSleep(int nWaitInMSecs,int nAscll)8 S2 w7 u3 c5 }. Y4 m
  43. {
    ( Y1 Q5 m2 z0 f  k8 `. x
  44.                
    / ~7 K( Q- Z8 J! ~5 R/ j+ o
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

' H) l3 C: q5 K% s2 f* X( R" n1 y' w. V% Z# T
xsleep.h文件代码5 t, t' W& r' F6 j% q* w

& {% c" O# O: v) R* h' V( G
  1. //Download by http://www.cncml.com
    , ^1 @. s' g* R$ o& q
  2. #ifndef _XSLEEP_H_
    7 G/ m. C  |$ Y& b3 X) X
  3. #define _XSLEEP_H_+ G+ _% x3 p/ M+ K0 j* @

  4. " U9 d  }, Z$ L
  5. void XSleep(int nWaitInMSecs, int nAscll);
    ! G  a7 Y4 a4 p: a5 L

  6. 6 H% x8 n$ A4 ?% \4 Q
  7. #endif // _XSLEEP_H_
    9 y2 Z) L2 x# R8 V- j
复制代码
; S3 A7 b% Z; J- _. l; M
: `$ w7 X& v. |/ }
mfc中的调用代码如下
6 X1 W% q- B6 \4 _
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
8 u2 }# ^. k3 ^6 h" O7 h
5 X4 ~) G& x" M( ?. ?  x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:30 , Processed in 0.126744 second(s), 22 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!