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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
& C8 |& E" l1 q* g( Q' X- W建立 xsleep.cpp和xsleep.p文件
( F/ L+ J4 [% k4 l# D% qxsleep.cpp文件代码如下+ J# ?9 V( r% f6 F
  1. //Download by http://www.cncml.com, M2 h. h- A; {$ _9 _0 g1 b
  2. #include <windows.h>
    " C1 g) h& k" R8 W& ?
  3. #include <stdafx.h>; ?. k! I5 A! \, K6 X- D* @% u
  4. 9 N# z* Q. _! B1 k
  5. // This structure is used internally by the XSleep function
    3 h$ u8 i2 x! W, K9 R
  6. struct XSleep_Structure
    1 |$ b* y0 ^* I5 H. a
  7. {6 |1 ^) Q" J+ j# d) `) y2 T
  8.         int duration;: u  e5 w: g7 J
  9.         HANDLE eventHandle;$ n7 g$ L0 s! b$ g1 u
  10. };
    ) Q& u9 u& z) s: h" K. \
  11. 8 _& u8 q  {0 i# j# h/ E& S. K9 d+ |
  12. + w: H! w" G- V- @( }, X. [) N  G
  13. //////////////////////////////////////////////////////////////////////
    : V( F& C# P8 d  b% P+ ]8 ~
  14. // Function  : XSleepThread()
    ) I+ Z$ {8 ]1 R$ b  D& s- V. ^3 A
  15. // Purpose   : The thread which will sleep for the given duration, G) `% K& _" i( m) f
  16. // Returns   : DWORD WINAPI
    # g% W2 Y& ^" f* U# m+ i
  17. // Parameters:       2 h( z2 r# O7 b0 ]+ M- E
  18. //  1. pWaitTime -
    , \' L; E0 E( {) |! Z0 G5 O
  19. //////////////////////////////////////////////////////////////////////8 I5 O3 X5 {0 M, u0 M' C
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    : h# L( H7 q( k% _8 W0 \4 B! I- R
  21. {
    / W4 F7 q+ k1 p( \/ m% A
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;6 v' F' |0 G5 c! h7 s

  23. * [- _; P3 t5 \7 G! i. T
  24.         Sleep(sleep->duration);
    2 F8 w- t$ f: d! R
  25.         SetEvent(sleep->eventHandle);4 C+ ?5 ]  c5 z5 ~, D
  26. , N1 ~8 L% X: A" V. N
  27.         return 0;, V8 L$ P3 p. ~7 Q
  28. }
    9 x% A0 }9 d! M/ _' A

  29. - R0 g+ j/ O) E- k. Q+ U- ]
  30. //////////////////////////////////////////////////////////////////////
      y0 u! ~4 ^3 o" I& }
  31. // Function  : XSleep()
    $ k4 a' }6 `6 h+ f% n
  32. // Purpose   : To make the application sleep for the specified time1 r( |+ S2 m  I+ {, B9 P* j: l* Z
  33. //             duration.
    ! v% i  h' |) C8 ^' W+ x: s
  34. //             Duration the entire time duration XSleep sleeps, it& _, N4 B4 R+ Q6 l9 W) M
  35. //             keeps processing the message pump, to ensure that all
    " `' T$ x% U( C/ X$ ]
  36. //             messages are posted and that the calling thread does9 T* T* J; ]" z! h
  37. //             not appear to block all threads!# A. M7 _) r1 A; e4 u6 h5 h
  38. // Returns   : none
    % Z1 R& Z  }' ]6 ]
  39. // Parameters:      
    % f! D6 U+ u* `2 g- ]# o, g
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    , O) N. p# r+ x- r+ [+ L
  41. //////////////////////////////////////////////////////////////////////; r, c5 o* y$ q0 \1 f6 F2 B& X+ w4 a
  42. void XSleep(int nWaitInMSecs,int nAscll)
    ( V( q7 t6 ^7 [
  43. {
    / A; J  C) F4 {; Q; c2 M& P5 b5 [$ Y
  44.                 6 X; T& n; c! e, ^
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
1 J- ]0 d0 ]6 L. g. `; I: O: @8 |3 I

  c+ b  x* I! A9 S  Oxsleep.h文件代码
, r( P5 x0 b" ~1 M0 A( `; l' n
4 w9 F: V4 I' F2 L
  1. //Download by http://www.cncml.com+ g$ H" t% ^. i: l. C+ k: |  Y
  2. #ifndef _XSLEEP_H_
    " D3 w/ {6 y* r1 y# H6 T6 q; i
  3. #define _XSLEEP_H_
    , t+ y0 {' f8 W8 m

  4. 9 o6 ?! U! ^+ o/ `2 e
  5. void XSleep(int nWaitInMSecs, int nAscll);" i7 N7 l, V7 R% F3 k) O
  6.   G2 j; k. C& q2 q' \& Y
  7. #endif // _XSLEEP_H_  |2 l6 L' n( \% ~. s! f$ R7 p
复制代码

% B- v  Y8 L4 U
. l6 n- g# x3 F, R( H+ `1 imfc中的调用代码如下
& S& k! F) F" @, j* Z% J7 h. C: @
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
- o! V6 d4 |  {8 J2 u

) ]4 R1 H0 s  r# R2 a, I/ U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 15:50 , Processed in 0.118378 second(s), 19 queries .

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