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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下8 U+ w: W4 N: r/ m2 m
建立 xsleep.cpp和xsleep.p文件5 o0 a( k/ P, Y& E
xsleep.cpp文件代码如下
: `; Q+ E, }. n5 w- ]$ j
  1. //Download by http://www.cncml.com0 T! W9 S* q  [3 Q
  2. #include <windows.h>' c- _+ u' `. Y9 f8 b" p1 K
  3. #include <stdafx.h>1 \! e, e# J' G
  4.   k; F# Q' a7 a- o6 g
  5. // This structure is used internally by the XSleep function
    3 V0 f4 k1 O8 B
  6. struct XSleep_Structure( t" _6 k* v8 G/ h$ d  G3 y+ t9 U
  7. {; x, o! P( n1 ]( y5 a# C) \4 N, [
  8.         int duration;
    $ q- o1 K2 y( O4 |  ^5 l6 _
  9.         HANDLE eventHandle;
    - o% q1 X& M% z. r0 \7 P4 S' L8 |
  10. };- f; W, ^4 X8 K- g8 q

  11. & @$ _8 e6 s6 R

  12. + {- w0 \5 z/ t  \3 a
  13. //////////////////////////////////////////////////////////////////////
    . U  W; |4 A/ m1 l4 e
  14. // Function  : XSleepThread()& d! b* O" U6 n4 s, E! D9 S2 D3 Q
  15. // Purpose   : The thread which will sleep for the given duration
    6 w/ Z- h7 ]4 v: \$ a  g
  16. // Returns   : DWORD WINAPI
    * [% c+ l9 t+ \1 c8 \( J
  17. // Parameters:       # O  U. \+ p0 }7 ]. A6 x* U/ G  y
  18. //  1. pWaitTime -( i" S& c  j+ W4 T/ W
  19. //////////////////////////////////////////////////////////////////////
    " w7 c% o2 x6 e% {! o. u
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    7 I) A0 ?% [+ w. x3 g; d% S
  21. {
    - t. G, R' K  O. T' h) d( i% a
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    8 ^9 k7 `' S# D7 {0 m2 ]
  23. 5 _, _  Q0 X1 s% s  D. S. b* @
  24.         Sleep(sleep->duration);
    . k9 _4 j0 z) N- V3 N6 L
  25.         SetEvent(sleep->eventHandle);
    ) T1 \2 H2 G: h/ p# w4 Y* ]
  26. ' |6 E; V$ f2 S9 `/ `
  27.         return 0;
    # R$ O( }0 A% A2 x# ^) t5 N* l3 H
  28. }
    6 T' l6 p8 x( E: x3 l' C9 I& ^

  29.   O" o2 Y/ V% i1 o5 p  m5 B, g
  30. /////////////////////////////////////////////////////////////////////// s- }# L# M/ ~0 s" P- O
  31. // Function  : XSleep()
    # x9 k, _- S+ B/ A  J1 k, u. J; H' {) v
  32. // Purpose   : To make the application sleep for the specified time
    4 h7 X& h/ e1 u4 R
  33. //             duration.
    * B" B9 l; ~$ C( W. K' I; W1 x/ t
  34. //             Duration the entire time duration XSleep sleeps, it. x, {5 S' K2 a
  35. //             keeps processing the message pump, to ensure that all$ p& y# L( C- w: [$ F, a1 \
  36. //             messages are posted and that the calling thread does9 @1 s: Y; O3 a4 m) i7 I. }
  37. //             not appear to block all threads!
    . T+ V' A: V+ E+ ]0 |. `, q
  38. // Returns   : none/ l. N' `0 H& F5 n6 N, w2 X
  39. // Parameters:       ( g6 H! Q( T/ ^" Q+ S# K
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    * @* i  |4 _( n
  41. //////////////////////////////////////////////////////////////////////
    , }7 |9 _1 \$ _& z
  42. void XSleep(int nWaitInMSecs,int nAscll)
    0 s7 L  h, ^7 [# W  z- X1 o( r
  43. {; V, a# Z! @9 A/ p
  44.                
    6 h: }! n9 A; ~9 K( e
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

" z$ F' V* m4 [( y
8 C7 K5 E3 Y. P- sxsleep.h文件代码
1 t/ c3 W4 u# P! N. I- O
& j/ R( Y  l% C/ D1 _, k/ Z
  1. //Download by http://www.cncml.com: L( c, ]' y- H) s7 ?9 X
  2. #ifndef _XSLEEP_H_( v+ c6 Y3 G6 H8 S2 R- i7 m  p& W
  3. #define _XSLEEP_H_
    & q5 E+ s" K. R$ O, X) ~6 M

  4. ( R7 q+ }+ x9 K; E
  5. void XSleep(int nWaitInMSecs, int nAscll);" y0 u& u+ M4 i+ a8 H
  6. : i) F3 f' M! O! f$ ^; ~/ g
  7. #endif // _XSLEEP_H_
    & f$ m6 a' I0 Y# h# ]
复制代码
, B: H# l7 t/ C4 e( s9 F
/ n' o* o9 i3 l: _; B" z8 w4 _1 v
mfc中的调用代码如下- O$ v" u0 Y2 l9 [5 C- e) V
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
8 i5 v: }6 D0 m' q8 k) U; H* d
, P+ \9 Z8 U7 z  u6 k6 C6 {6 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 16:22 , Processed in 0.053375 second(s), 19 queries .

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