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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下1 ?& j6 l! [- Y' k
建立 xsleep.cpp和xsleep.p文件$ {( N8 P% q: t; [' L0 X
xsleep.cpp文件代码如下
* n: X$ M7 Z1 `9 E$ Y5 g
  1. //Download by http://www.cncml.com
    6 w* }8 t+ Z) m8 y
  2. #include <windows.h>
    ! W6 Q3 U, q+ ~. ?: k4 a: r
  3. #include <stdafx.h># F1 U% B" J2 d- |
  4. 1 m0 u5 N- Z# ^% j" y7 e: T/ b4 [- _: o
  5. // This structure is used internally by the XSleep function 6 t$ e) H" @8 n' i
  6. struct XSleep_Structure
    6 G1 Y9 G* d* ?. u% I& W. F9 \1 E
  7. {
    ' T6 B! |2 @: z4 F- ~
  8.         int duration;3 {7 L+ _9 _* u
  9.         HANDLE eventHandle;
    9 Z/ T0 i0 A! O7 |2 E0 I7 C4 K; ^# ^
  10. };
    8 _% c5 |: F- d* U$ C3 q* f! `. H

  11. / {9 M: w0 i9 V
  12. 4 Q$ y1 n+ R2 T: T: u7 z7 w+ z
  13. //////////////////////////////////////////////////////////////////////
    / e7 E. E* }& Y3 ~. I# l4 B
  14. // Function  : XSleepThread()
    4 y* I. N) \/ L. g4 ]8 n
  15. // Purpose   : The thread which will sleep for the given duration
    9 D1 n3 }! V/ c
  16. // Returns   : DWORD WINAPI
    1 p' W5 g0 j& ]4 z) Q4 E
  17. // Parameters:      
    ; ~4 U% }* v* ]% B
  18. //  1. pWaitTime -
    3 B- H- L9 d) R
  19. //////////////////////////////////////////////////////////////////////
    3 W% n& R" |5 K% O! r1 _& S0 {6 ]' ]
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    ! v$ T) l0 F* Q; a( @. F( O
  21. {3 S8 r; m/ _* m; E+ C
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    5 ^; u  G# ~' O# g1 j
  23. ( G& ]% B" p- f& ?0 R
  24.         Sleep(sleep->duration);/ C1 n/ H: T+ _  ~) R9 v  d
  25.         SetEvent(sleep->eventHandle);$ z& R) Z/ D7 w7 s4 H
  26. 2 o$ V' `5 o" m: V  f$ N
  27.         return 0;; j% z4 |6 _! k) m& _
  28. }
    ! e, X' Z$ v/ k

  29. 7 ^3 C4 d& B. r) ~- r+ O, z# B. I
  30. //////////////////////////////////////////////////////////////////////3 I( w8 K: b+ }: \
  31. // Function  : XSleep()
    # L( e" U* s: Z& n
  32. // Purpose   : To make the application sleep for the specified time
    1 g' I& Y( @. B3 S" o' a4 R
  33. //             duration.6 d5 `9 d) O  g2 G  q  G
  34. //             Duration the entire time duration XSleep sleeps, it1 L* Z; k1 z/ {1 n
  35. //             keeps processing the message pump, to ensure that all# `: ~, L# L+ n9 k! o$ a4 W9 u1 w% O
  36. //             messages are posted and that the calling thread does3 }# a6 e$ Z. N# j6 `# F4 a
  37. //             not appear to block all threads!
    0 l  i( j. U& C0 ~% b$ U0 _
  38. // Returns   : none/ S9 `$ p  Y. @% e- E& m5 D3 c
  39. // Parameters:      
    % F. Y8 c) \, R: a8 K9 c$ X
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.4 |% C1 Z) ?9 T4 v
  41. //////////////////////////////////////////////////////////////////////; W3 v' w: l/ d$ q! M; c9 r
  42. void XSleep(int nWaitInMSecs,int nAscll)
    8 N- c( b# n+ c: F1 \7 l0 ]
  43. {6 `' `7 w& R( ], i6 ]6 D, r) V
  44.                
    0 ?/ Q1 a5 r) [0 j1 i3 ?- a
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
  E- F+ O4 z; n& ?+ L( ?' u; M8 L

$ q5 _- y* D' g( B; ^+ e. B  vxsleep.h文件代码, P5 i+ O* \6 q' F2 [
  H- k2 n  w. d/ |$ W
  1. //Download by http://www.cncml.com8 R- W; q# k, ?7 T5 w% c
  2. #ifndef _XSLEEP_H_3 g. R! p! L4 |! L) Z
  3. #define _XSLEEP_H_
    7 d' j' L. c% Z9 c" `5 y) H

  4. / q0 f8 d# S: F1 E5 Q. f7 m
  5. void XSleep(int nWaitInMSecs, int nAscll);5 L  m+ P$ a5 z3 h: e8 b2 v& `

  6. % @, w. |) ^% i. T7 l- j3 _
  7. #endif // _XSLEEP_H_
    " g9 ]* e: r/ I
复制代码
6 y  @: Q7 e8 T: F* v0 ]# O

6 R9 o2 \3 Y- S$ z3 }/ Q+ Gmfc中的调用代码如下$ [. b; R4 N0 z% V$ |
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

7 t) |# Y: y$ V; a4 o) M( E
- w, @$ e: ^# Y) G2 e$ y% P1 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 16:37 , Processed in 0.050766 second(s), 19 queries .

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