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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下/ `6 x0 ?% ^/ B: @
建立 xsleep.cpp和xsleep.p文件
9 Z8 `1 P3 T- V; ^xsleep.cpp文件代码如下8 B, w- u" w0 [' i
  1. //Download by http://www.cncml.com2 D4 U  q; O8 R( M
  2. #include <windows.h>8 Q+ O  x( Z0 D& h# p& F; C+ x
  3. #include <stdafx.h>0 B$ i& {7 ^$ H+ l: W" _, S

  4. 7 S: {% y* }5 X; O$ {9 k1 Q
  5. // This structure is used internally by the XSleep function
    1 P7 P, T* ?& W: k" ]% S& f
  6. struct XSleep_Structure
    + I0 N/ V" a' C( x7 e
  7. {
    $ [6 M$ L7 U* p9 j& j/ T8 a/ T2 W
  8.         int duration;# E6 K% C1 |3 \4 I* \3 y
  9.         HANDLE eventHandle;" S; b+ J$ }8 @% Y$ }. l4 g7 h  O
  10. };
    ' k/ t  r1 n8 S0 L1 t1 y: o( Q
  11. ( i7 i! z1 Q5 N& p) R; T. \

  12. 3 j8 G5 U. Z2 R
  13. //////////////////////////////////////////////////////////////////////$ d8 |: U3 u( q5 t; B6 s
  14. // Function  : XSleepThread()
    / }7 Q! K9 O& i
  15. // Purpose   : The thread which will sleep for the given duration
    # R% k: Y  W5 V+ n8 q
  16. // Returns   : DWORD WINAPI3 }) }! ^! }( T  K$ k; B  Q
  17. // Parameters:       - Z9 z5 ]7 M% f4 l- ?
  18. //  1. pWaitTime -
    7 }. m4 n( m. [9 w2 K* @+ k( u
  19. //////////////////////////////////////////////////////////////////////
    5 Q5 _3 m3 j. B7 T* X3 r
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime), X- j6 Y3 I* V; f$ p" D) f- \
  21. {! H3 R9 E1 n9 Y9 W5 r
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;/ g- f4 C9 H" `* e& h5 ?* A9 i3 a

  23. , B, Q" y0 S% D) L1 V6 ?
  24.         Sleep(sleep->duration);
    ) r2 G# |/ w$ G) F  P
  25.         SetEvent(sleep->eventHandle);9 F9 W% ~* o& ^- m  q' [

  26. # N/ x! l+ V6 E; q! q$ N- X
  27.         return 0;
    + P7 f; T) S! O2 O6 ~& G
  28. }. Q: A4 |3 @9 m  P# i3 A
  29. 5 s% u( v; A; @$ E7 ]0 B4 t0 ^- U
  30. //////////////////////////////////////////////////////////////////////
    - L. v" n0 |) X3 ]" G- Q
  31. // Function  : XSleep()8 a: e6 d, o3 y) @
  32. // Purpose   : To make the application sleep for the specified time
    ; ?1 m& S9 Z' ^# e7 h& O
  33. //             duration.: e& `' b9 m, L- w3 v
  34. //             Duration the entire time duration XSleep sleeps, it3 ~2 ?  S( H0 E2 C: r- i( O
  35. //             keeps processing the message pump, to ensure that all- N2 H8 T9 O$ o+ A2 h9 U1 o5 [4 {5 z
  36. //             messages are posted and that the calling thread does
    5 y5 z- I, U" J2 j0 K! j
  37. //             not appear to block all threads!
    6 e& f# w& _" x# l) e" j2 G" S
  38. // Returns   : none
    + M* c$ s+ c0 _0 m2 s. i' a& ~8 K& ^
  39. // Parameters:       - N8 ~1 _6 y1 h2 m
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.# B( t" t! F, [1 s
  41. //////////////////////////////////////////////////////////////////////1 A9 A+ J: Q( z1 Y2 U+ ?
  42. void XSleep(int nWaitInMSecs,int nAscll)8 }9 Z" A; z( e- c# p
  43. {9 Q6 R# i8 A0 f0 ~2 I8 U
  44.                 ! G/ ]3 s. T4 }3 t5 E! r- p
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
  ?6 Q3 V. H8 d# T9 ~, N+ b! e4 i( q8 L

& ^$ g- ^2 A- p+ r3 h& k) ixsleep.h文件代码
0 {# B4 L+ h/ q3 p: e5 D5 T0 q9 C6 T, u; C3 S. V9 c; C
  1. //Download by http://www.cncml.com
    1 v3 _, ~! z: |2 v4 H- B
  2. #ifndef _XSLEEP_H_
    7 P6 ~( w8 m$ i/ \! g$ D; ?! N
  3. #define _XSLEEP_H_6 n/ e7 p( E, d0 [" V: O

  4. 8 t2 H1 E/ e9 C6 z+ t. h. k7 j
  5. void XSleep(int nWaitInMSecs, int nAscll);$ {5 U3 w3 I9 S4 [" f  U; |

  6. # f( v' J' F- B# j0 x, F5 m5 A3 ^
  7. #endif // _XSLEEP_H_
    3 ?, D& e4 a3 A) Z: ~
复制代码

- b3 ]2 g# U. ?0 ~3 X$ d9 B
% {4 a) B: U; ^8 G/ h$ @mfc中的调用代码如下
! }# H4 k; h' Y. b: M
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

" j! q& s: F: N) R+ ^' R6 `  e" u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:53 , Processed in 0.081307 second(s), 21 queries .

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