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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下- L, u; ^$ \1 z8 w$ |$ X
建立 xsleep.cpp和xsleep.p文件
( v+ C, w: b7 p/ K3 ^xsleep.cpp文件代码如下/ J# L) L+ Q$ t, y+ w1 @4 |
  1. //Download by http://www.cncml.com
    / [$ t) F9 u$ W- e0 S% J
  2. #include <windows.h>
    + |+ ]* v$ n1 X7 P8 m5 b
  3. #include <stdafx.h>' i. H) P( C4 T2 P# z5 s

  4. , e3 Z( T" D( O' i
  5. // This structure is used internally by the XSleep function
    ! @  j- H: P2 M" V) l" h( Q
  6. struct XSleep_Structure1 d& L9 r' n! n+ w0 D
  7. {0 p" C! H6 ~5 y# ?6 L7 B; N
  8.         int duration;
    2 R+ m- r: E' {1 x# H* C
  9.         HANDLE eventHandle;
    * _& J$ H& T. a8 O) j8 m9 r
  10. };' D' l4 F# D: H5 Y/ `6 _' j' x
  11. ( i0 e  H- o1 u9 b- r) ?9 @+ ^
  12. ; r' ]- V# Z4 |5 G" F& g4 t
  13. //////////////////////////////////////////////////////////////////////5 ]9 G( C! o1 ~: O  D
  14. // Function  : XSleepThread()
    ( `7 k; Q+ O1 i$ i1 h# t
  15. // Purpose   : The thread which will sleep for the given duration
    : ^4 c! G9 I5 \- _0 \" }
  16. // Returns   : DWORD WINAPI- i, ~3 ~' f1 ^
  17. // Parameters:      
    1 g2 Z9 _5 ?( Z' N. Y5 |% Q! g
  18. //  1. pWaitTime -
    $ p) Z- S: v, h  {: ~/ T
  19. //////////////////////////////////////////////////////////////////////2 G: S/ Z& A4 Z* I
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)/ P& t  {- N) r
  21. {2 B4 i& q1 }9 }
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    & P* k% s" y' ^1 n# t
  23. $ S( p! m. W# n! I$ E8 |
  24.         Sleep(sleep->duration);
      d( U, m+ b' y: ?: |1 \5 P
  25.         SetEvent(sleep->eventHandle);
    * x# L% y+ _" n# W) H. X

  26. # @! N6 T! w" k0 ~% p& ]7 N
  27.         return 0;
    . A) F; n# g9 l  \2 L, L
  28. }7 M0 p; n: h6 n! Y! Y, F9 H6 F. I

  29. 4 g& h8 J. S$ V+ q
  30. //////////////////////////////////////////////////////////////////////$ P2 T0 r6 N: ]1 r" K/ }" O
  31. // Function  : XSleep()
      B7 `. F' T6 F: }0 U( }0 ^9 }
  32. // Purpose   : To make the application sleep for the specified time
    ) s$ \7 j0 L3 n
  33. //             duration.# x& ?9 A3 F; S" F+ h  _( o( e' r
  34. //             Duration the entire time duration XSleep sleeps, it
    $ a! m6 V$ e1 [; E# Q2 {% N8 o$ q
  35. //             keeps processing the message pump, to ensure that all
    2 b* _( i! b% o3 X, s# f, V! A
  36. //             messages are posted and that the calling thread does
      @  h9 V. @* V( J$ e) P$ j+ |
  37. //             not appear to block all threads!
    0 ?0 S* c3 r* u) ~# r9 `* _1 A4 O
  38. // Returns   : none$ ]9 Q, U) E+ s7 H5 ]
  39. // Parameters:      
    : Y& U- D( y3 Z* }
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    8 w1 l  V6 L2 v6 q( G8 w
  41. //////////////////////////////////////////////////////////////////////9 G) H* |. s7 E1 c: }& d
  42. void XSleep(int nWaitInMSecs,int nAscll)
    ; k! D+ |7 o* U: j
  43. {
    2 ?6 H" ]; }: Y1 d
  44.                
    4 v$ A% W6 ?% d9 `
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
$ l+ ~) U! s7 L( H+ y* x0 Z4 i: d

' @3 `9 K1 z+ j4 ?$ {6 mxsleep.h文件代码
! {# Z8 e7 z/ v; j3 t& S% f; i6 ?, Y- v9 @9 b
  1. //Download by http://www.cncml.com, c; e& ?7 D* {+ h$ Y, l/ R4 R0 F
  2. #ifndef _XSLEEP_H_8 ~6 c+ H! z- ?2 n( |: G
  3. #define _XSLEEP_H_* e/ y  r5 {% C+ K8 l

  4. ) J" S0 T1 q0 J1 p2 u% z
  5. void XSleep(int nWaitInMSecs, int nAscll);+ N/ V& e4 T6 j4 T! D
  6. # Z& \5 Y0 B" m
  7. #endif // _XSLEEP_H_! r' v2 L0 A2 V! d$ g% r- D' M# V
复制代码

/ v7 e) y/ v0 a/ o
0 v2 O% e2 ]3 H1 Umfc中的调用代码如下
' Z% c7 d: @  F" ]: t" l
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

0 n; m1 F9 a* ~/ G0 C. a) C/ [+ D2 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:28 , Processed in 0.052039 second(s), 20 queries .

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