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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
8 ?. \* |. U8 m7 x2 U7 P建立 xsleep.cpp和xsleep.p文件: N, B: R) c; y; ?  M3 m
xsleep.cpp文件代码如下
/ E  s0 Z- \7 X) U! n# C$ t, B
  1. //Download by http://www.cncml.com1 V% J' m% e) z: w4 Z# j6 Y* b
  2. #include <windows.h>
    , K  ?, X$ J& Z) A. g9 d4 [* J4 `
  3. #include <stdafx.h>) n9 j9 M. h4 O0 o; b* u

  4. 8 a3 j4 l9 U9 U" C# j- z; @
  5. // This structure is used internally by the XSleep function
    + W$ J$ k; a8 i: J) F. J
  6. struct XSleep_Structure  }3 w3 z7 ]  b% `. F) [/ ^
  7. {
    # @$ P* V2 z& ?
  8.         int duration;
      Y% }# e# ]( R2 z9 E1 _9 n
  9.         HANDLE eventHandle;0 v1 d+ b4 `5 M7 v# B
  10. };
    2 L: r. f0 f+ l7 s) Z
  11. # p$ {3 h) h. r( ~" I

  12. $ ?0 q) O; r! H8 @2 ~+ z- X
  13. //////////////////////////////////////////////////////////////////////1 }! P) j+ g% D6 u( T7 K
  14. // Function  : XSleepThread()& [0 j0 L4 |0 v
  15. // Purpose   : The thread which will sleep for the given duration
    ! D3 j% u+ y9 ~# V
  16. // Returns   : DWORD WINAPI
    / a9 N* \$ N; M# b! }7 A% s
  17. // Parameters:      
    2 V9 G: F+ W) H, I. @- y% n
  18. //  1. pWaitTime -
      b) w0 C5 A5 z" E) F1 u
  19. //////////////////////////////////////////////////////////////////////
    ( m& ]) C6 f1 y5 m
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
      k2 z2 x7 q, y: v0 |! }
  21. {
    ; e$ J2 z% ~7 a2 B: b# `) q
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    . Y/ N: M$ v9 l& H" u, F
  23. , E+ ~; }* N0 T# J( [! T
  24.         Sleep(sleep->duration);2 P. ]; e" b  P
  25.         SetEvent(sleep->eventHandle);! k4 `8 u' o( i3 i8 R& b  ?& \# w7 ]

  26. - c+ Q+ U. _, _& C1 V. Q4 g) E: S1 u8 W
  27.         return 0;; _/ [) @5 S- G1 j) t
  28. }" Z0 w- E/ T: B% x

  29. 5 v! n6 B- M" D; F
  30. //////////////////////////////////////////////////////////////////////
    ! R1 R1 ?' N" P; e2 W# G4 H; u4 r
  31. // Function  : XSleep()
    ! C- B/ j7 I% _! V4 N
  32. // Purpose   : To make the application sleep for the specified time( Y. b4 r! g; T% k" }
  33. //             duration.
    5 c9 q5 s: k3 `% V0 l0 ^8 O
  34. //             Duration the entire time duration XSleep sleeps, it/ Q- y  \- s% Q
  35. //             keeps processing the message pump, to ensure that all- p9 `2 v3 |& B$ ]0 E" J0 T6 k
  36. //             messages are posted and that the calling thread does- ]' f$ C1 c3 {; m1 b$ a2 ]) W- t
  37. //             not appear to block all threads!7 d' t6 H) h5 |9 ?
  38. // Returns   : none- o0 |2 V  u" p# ^1 Y  W
  39. // Parameters:      
    8 h% U4 z+ L& w: o- I
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.) ?5 g2 y4 A9 h. |
  41. //////////////////////////////////////////////////////////////////////
    ( ~! q# R9 f0 p3 U7 z
  42. void XSleep(int nWaitInMSecs,int nAscll)1 C7 o, n/ v7 N8 x+ M" i3 J
  43. {4 v9 E3 y7 b7 o8 n9 Y
  44.                
    3 S8 T. o# o4 q9 k& W+ y9 |
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
. T- L4 [7 z2 i) \+ w' ?1 q4 \6 y# c; F
2 J7 V8 _8 v. N9 W9 J* |) Q
xsleep.h文件代码3 c" H1 v1 Y" Z/ D8 n5 `8 t
# @2 ^* m- d* r( e  }
  1. //Download by http://www.cncml.com# R% q- O9 e* ~  Y
  2. #ifndef _XSLEEP_H_' @6 T, u# d0 R4 U: i
  3. #define _XSLEEP_H_
    0 n2 R8 m: {; F0 E, L# C+ r

  4. * C; |/ ]" Y4 ?! U( T0 T. s
  5. void XSleep(int nWaitInMSecs, int nAscll);
    $ [# O: l8 |3 O+ x3 p

  6. / X* V9 v6 k9 D9 J, |5 w1 N
  7. #endif // _XSLEEP_H_
    . B6 {, v9 H. d# }3 P
复制代码

; j# Y1 M5 r9 N2 C" ^9 {+ o1 L7 K  `' R4 o$ c
mfc中的调用代码如下
  j0 \4 d; D; k( s
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

7 o; R. a+ T2 d; F# X! i* p
/ y  f; ?# V0 g  B+ e& E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:44 , Processed in 0.062223 second(s), 20 queries .

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