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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
7 o' j$ \7 z$ Z' X6 Y9 S, s建立 xsleep.cpp和xsleep.p文件2 }8 E) t0 t' w( {+ \3 a# K/ {) W
xsleep.cpp文件代码如下2 U' @/ g  @( b/ t. R, ^% l. x7 a
  1. //Download by http://www.cncml.com- g/ ~8 y+ S& \# {5 t
  2. #include <windows.h>
    ( j! ~% M: F9 u' C/ F3 p
  3. #include <stdafx.h>0 Y4 q$ y. `# @: O3 ^8 O; t# @

  4. ' v9 }$ ]1 h! ]; s- @
  5. // This structure is used internally by the XSleep function
    8 E9 C/ K% M% I
  6. struct XSleep_Structure
    5 s" T0 e" f' b9 j4 b
  7. {9 g$ g- D) ^+ x( t; _) o# x
  8.         int duration;
    / K' D& c. ]( v+ g/ F
  9.         HANDLE eventHandle;
    2 r3 `  }) i2 G, n+ B8 a5 s
  10. };' D4 s; g- r' c3 Q7 s2 Q
  11. 9 J& G  L1 w% V5 L5 a
  12. . p1 E$ Q) R4 \& T$ N) e
  13. //////////////////////////////////////////////////////////////////////! r. T! d4 [% P) L+ L6 ~
  14. // Function  : XSleepThread()
    , S/ U. f, B% Z) G7 `) O
  15. // Purpose   : The thread which will sleep for the given duration8 `. `% ^# q6 D& }. A
  16. // Returns   : DWORD WINAPI
      v, g, k/ z8 O" P
  17. // Parameters:      
    % Y6 e& v& ~/ ?# _) t/ u6 n( V$ d  L
  18. //  1. pWaitTime -
    7 H/ ]6 S3 K& @
  19. //////////////////////////////////////////////////////////////////////
    $ |. I' ?8 Q& B( c, h6 M3 N& F, l* m
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    & }, W0 ]6 j4 H- f. P# }
  21. {9 b. K# ^! G* G7 k- y/ m8 E
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    + P: Y5 O3 \+ v3 r% U4 i
  23. 1 ~5 x: A1 r! w/ ~. S1 s+ s. m
  24.         Sleep(sleep->duration);
    . g* Q) w# ^: z) }" o; `
  25.         SetEvent(sleep->eventHandle);% l. T! r- r! J1 {6 F

  26. , a4 Y5 y7 ?+ f; k0 F
  27.         return 0;
    , T0 L. E) w" x- S+ s
  28. }+ p5 I  j5 ~4 w! c
  29. 3 N8 ?( H( F3 t# o; N
  30. //////////////////////////////////////////////////////////////////////5 G0 |  a# v+ z4 B& q
  31. // Function  : XSleep()' m7 T! b% ?! \; V. U
  32. // Purpose   : To make the application sleep for the specified time
    0 N- ~% J, n# u! G! L+ @
  33. //             duration.* S7 M, G5 M( |
  34. //             Duration the entire time duration XSleep sleeps, it
    3 ?. K. R0 ?+ j* ^8 ?# W
  35. //             keeps processing the message pump, to ensure that all
    3 L& W. g5 Q6 C! r0 B2 P
  36. //             messages are posted and that the calling thread does& n+ H" t/ ?3 \* `* \  }) T
  37. //             not appear to block all threads!' ~3 T- ?' W. K: j+ l' @
  38. // Returns   : none
    3 l  @. \6 d' G) Q6 a
  39. // Parameters:       $ ^& d9 h6 z' `) s! z! w
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    1 i5 W+ _6 z: F% l6 L" t" ]) y/ w" B# C
  41. //////////////////////////////////////////////////////////////////////
    $ S* G9 n; q8 O. J  t: v' k
  42. void XSleep(int nWaitInMSecs,int nAscll)% o9 D8 h( A. A' y) k( M3 g9 K
  43. {
    7 v* P! G0 \) B+ n
  44.                
    / \8 ]6 z& p+ c- t1 T& G
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

! H$ P/ x5 k! R" S2 g/ F" z- j* ?5 Q+ p
xsleep.h文件代码
8 [  G+ k) ~0 a4 i$ B
0 G1 P: q: k, k1 n) U8 H
  1. //Download by http://www.cncml.com
    ' O1 ^# Z5 A% W9 {
  2. #ifndef _XSLEEP_H_
    2 L9 u6 Y4 q4 e% N1 o% b$ D$ N
  3. #define _XSLEEP_H_' ?( @; i0 g' b2 P' u
  4. / m; Q& J1 O9 z7 `8 @
  5. void XSleep(int nWaitInMSecs, int nAscll);
    ( X& G- ]0 M' u6 r# E( m8 S% K7 ?

  6. + f' {4 N6 v9 p6 F, c
  7. #endif // _XSLEEP_H_
    ! _% i; L/ {; f3 C9 M" {
复制代码
9 S3 s! g" a. V6 T; `, j1 V0 u( R

: [3 K0 X/ c# A/ \3 J7 Lmfc中的调用代码如下( N, x% F- n& a6 g) M' r1 V) E$ V
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

, L( L5 j+ F3 a& z" ~8 e# h* M7 F8 R# l  o- ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 08:12 , Processed in 0.049607 second(s), 19 queries .

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