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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
& i. w, x8 _% ~& W+ v; `7 l8 R; F建立 xsleep.cpp和xsleep.p文件
- V& |& Q3 Z  K$ H* Bxsleep.cpp文件代码如下
9 i8 E9 i! ~  ^6 o, D
  1. //Download by http://www.cncml.com
    ; U1 D) Q) D! ?& g; C) ?$ ?/ I
  2. #include <windows.h>- i5 q- @7 s* J
  3. #include <stdafx.h>$ B( h% o) g8 w8 s/ p: L' j- W1 @

  4. 6 E) _( v0 R$ }' t0 s! _
  5. // This structure is used internally by the XSleep function
    ! J( S0 M  R1 P7 s  ^% r% \8 F
  6. struct XSleep_Structure
    & x" l+ o3 U0 M6 F
  7. {: f8 o6 D. h+ K$ o
  8.         int duration;
    ! Z) P( C1 Q) n
  9.         HANDLE eventHandle;& P% G0 n' C0 o( X  R3 ^+ \
  10. };
    ( U! R9 u+ o5 \1 z) ~

  11. % A( R' b! R4 E

  12. ' n0 x. Z; S6 l/ |: B5 r9 W# }9 J
  13. //////////////////////////////////////////////////////////////////////* U7 c. l6 \+ t+ [
  14. // Function  : XSleepThread()
    9 y' s, R1 D) a2 }
  15. // Purpose   : The thread which will sleep for the given duration$ Q! B, ~6 {( g0 G
  16. // Returns   : DWORD WINAPI
    1 j6 J: N% B! v2 z1 O
  17. // Parameters:       2 V8 T. r* S) G9 Y1 ~  m+ Z# h% _
  18. //  1. pWaitTime -
    . j4 |+ v4 A! {/ g% Y+ |
  19. //////////////////////////////////////////////////////////////////////+ _5 C6 u2 [0 P, s' ?: J7 j( M( K
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime), C0 K6 n7 k" ~
  21. {
    5 {$ O4 Y3 b1 \  \6 Y; u
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    7 [" g" C. _( m- Z7 j
  23. ; U3 j* Z3 k# ?$ |& ~. O# C
  24.         Sleep(sleep->duration);
    ) q0 \. i) h' x( [2 A" {) n
  25.         SetEvent(sleep->eventHandle);
      g" o8 A4 p% @
  26. " {  x  \. _) Y) a* h! ~7 E
  27.         return 0;$ _, G' K: D( R
  28. }0 i# u" i6 h+ o7 i
  29. * E" A- ]8 ~& K0 N
  30. //////////////////////////////////////////////////////////////////////
    ! `' X1 R( U: y
  31. // Function  : XSleep()4 K1 U4 f! `, j" j$ N' e; X% ?
  32. // Purpose   : To make the application sleep for the specified time% m' e8 R4 t, Y
  33. //             duration.
    ! d( q2 S  N' U/ q/ `
  34. //             Duration the entire time duration XSleep sleeps, it: d" w$ Q9 z- n' t8 W! Y
  35. //             keeps processing the message pump, to ensure that all$ d7 ]" {4 A0 H9 ]
  36. //             messages are posted and that the calling thread does' f3 b+ L1 S3 b0 \* n0 [; t
  37. //             not appear to block all threads!( F3 G' K. V: F. `  `: f! G
  38. // Returns   : none
    4 M+ g' L: Y9 F8 s0 k  m
  39. // Parameters:       6 P8 w% v3 m7 ]- ]4 @. a4 r5 Y
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    - A" Y6 U% k1 M' x) y: g6 Z- A* z
  41. //////////////////////////////////////////////////////////////////////
    # V7 V- t+ B: g% t6 ]4 K
  42. void XSleep(int nWaitInMSecs,int nAscll)
    * C% h& `& A' A* r5 t$ o# e/ G
  43. {
    2 A' I7 f3 I/ I; t8 O( O$ P
  44.                 7 B! ]- P2 B2 l- d/ f. |
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
4 c& @0 Q3 K! Q' z2 B' k3 o2 W
/ q- b1 `8 L  `
xsleep.h文件代码
' K3 j% w4 B1 F. U* m6 ^
: O2 B4 L, ~2 G0 M1 z3 z
  1. //Download by http://www.cncml.com
    4 R$ _# a! i# h; `) h  W
  2. #ifndef _XSLEEP_H_
    ! m; p% Z6 J( l1 v! A
  3. #define _XSLEEP_H_
    $ v9 D* T: G; `

  4. 0 m$ O* L: ]2 e4 X/ k. d9 o- R* q
  5. void XSleep(int nWaitInMSecs, int nAscll);
      v9 ], |. d& ?! l3 X5 [) Y4 g: k% Y2 N

  6. ' M6 k# j! ]' b; x5 Z  Y
  7. #endif // _XSLEEP_H_
    ' {& @( |* }+ K9 c$ p3 s8 x' l! K3 G
复制代码

& N, L$ e# N8 q' p6 M0 n" ~( Q5 j, }5 x! X$ _6 a
mfc中的调用代码如下' Y- M( u; O$ g( O$ w
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

9 J5 |) W( Y7 ~' x
5 G$ O; B% a" n* N3 U& _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 11:48 , Processed in 0.069536 second(s), 22 queries .

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