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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
; n* F5 v' z  g8 U3 q( s建立 xsleep.cpp和xsleep.p文件; j  b3 D+ {- a; A# \
xsleep.cpp文件代码如下
5 Q1 l9 ?+ z+ Y) H: p
  1. //Download by http://www.cncml.com# n( \4 `) n: J( |2 f
  2. #include <windows.h>
    $ D; q4 z' I8 T5 }9 d; t! M4 N
  3. #include <stdafx.h>
    : w2 T/ q: p0 `6 E, t0 A1 ~5 h

  4. 4 l( B) y9 {. N* @
  5. // This structure is used internally by the XSleep function
    * V4 A  m7 T9 j7 D/ H
  6. struct XSleep_Structure( C  l+ m6 F  @2 a
  7. {" Z  n; V/ V8 E* b+ Z+ ^
  8.         int duration;- ]3 a* K. v/ Z' `2 R) b& Z7 _
  9.         HANDLE eventHandle;
    5 e  [# a- E& P' O; r
  10. };
    9 E; e% J9 y% L  D

  11. 1 M* F5 L/ g" @  s* b& ]( `$ ]3 B
  12. % I9 R" U' n; T1 F) U
  13. //////////////////////////////////////////////////////////////////////( [2 x4 l# n9 S  \5 z3 \% @6 E1 {4 j
  14. // Function  : XSleepThread()
    5 {. M" b7 o2 J
  15. // Purpose   : The thread which will sleep for the given duration
    7 d4 ?  l5 R$ w4 }
  16. // Returns   : DWORD WINAPI
    % C$ i# b! q" [
  17. // Parameters:       " r' o/ A3 }  {/ J0 Q- g* M
  18. //  1. pWaitTime -& a8 r: G; S" {! \9 _
  19. //////////////////////////////////////////////////////////////////////
    , o8 t( Y* q- w, B2 t# O- d* i, R
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    1 X% X2 c: x& d9 w, B! c7 m
  21. {) C+ U: |, [+ d3 D
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
      F: q5 P$ X. v% X/ M: N! w7 N

  23. ) ?' A- m. O* G8 x
  24.         Sleep(sleep->duration);
    ! h. a+ R) Z. {7 |' b( y9 P
  25.         SetEvent(sleep->eventHandle);
    ; x2 W' F1 o8 O7 b8 X

  26. + x0 L7 {, D5 o7 y' \$ r4 [- @4 r
  27.         return 0;
    4 P) d' T7 G* I; c( w8 H
  28. }$ Y! Y) z2 W5 ?1 w
  29. ; U- _- W5 L3 e2 \5 Z8 z& [7 N
  30. //////////////////////////////////////////////////////////////////////
    & r" r5 j3 n* b% e/ |- ]
  31. // Function  : XSleep()
    ' h' Y" T" ^8 h5 l9 g$ e+ \
  32. // Purpose   : To make the application sleep for the specified time
    1 t4 }" @  U- E& B9 h* J
  33. //             duration.7 W7 v3 j7 W% d" p6 e2 P' ]4 T. C
  34. //             Duration the entire time duration XSleep sleeps, it
    ! o. J, b/ h/ F' A/ u% L+ n" m
  35. //             keeps processing the message pump, to ensure that all
    3 {' f; ?" F6 |% ~
  36. //             messages are posted and that the calling thread does
    - a/ c* e: l+ T6 m" ~: G
  37. //             not appear to block all threads!  x/ e) n' _9 r
  38. // Returns   : none7 p6 f* p! F9 ]9 c
  39. // Parameters:      
    * |1 N  B2 }6 A4 U2 Q$ `
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.! @! Y9 B/ n3 K2 |
  41. //////////////////////////////////////////////////////////////////////
    3 V! v4 i2 O* e0 Y  u
  42. void XSleep(int nWaitInMSecs,int nAscll)7 X. m4 a" F) e7 {5 @9 x% s
  43. {& [/ Z8 E0 [! J, z6 y5 b. n
  44.                
    0 \6 [: @; f) }1 _" W
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
1 X/ ~  U" ~( x  U4 ~- X' T

0 |! J; S* H2 D6 I% Q4 h8 g7 Zxsleep.h文件代码( b* h/ T& E8 F1 c) `7 x7 X) R
$ r3 h6 ^" D! a0 U
  1. //Download by http://www.cncml.com- i: ?+ H6 r* W, ?% D% c3 l
  2. #ifndef _XSLEEP_H_
    ) c- z; v5 j9 V! l) j5 E" J
  3. #define _XSLEEP_H_
    $ u6 t) n3 j* `
  4. * [# U5 l7 p; X
  5. void XSleep(int nWaitInMSecs, int nAscll);& d- F  i8 d) S3 G* N, h, b
  6. ! l+ U& U8 y5 K$ k
  7. #endif // _XSLEEP_H_
    8 |! w9 \& Z/ j! U! C" T% L( H% q
复制代码

# C2 D5 i/ t$ {' F
' o5 C, x. H$ g0 u& wmfc中的调用代码如下5 \0 V7 C3 j* ~* F+ c
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

1 V  L- i$ I  G* Y5 o1 {4 S2 l3 B3 f& r7 n6 _9 N5 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 02:06 , Processed in 0.053195 second(s), 20 queries .

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