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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下* ^( P4 J, }" i0 i9 F
建立 xsleep.cpp和xsleep.p文件
! p+ j  j; D. m$ F! z! txsleep.cpp文件代码如下
5 {4 k5 O* e% z
  1. //Download by http://www.cncml.com
    3 P) C9 Z- G+ X+ e; e* c2 Y& R+ L& P
  2. #include <windows.h>
    - x2 l7 c! z3 i" W; v
  3. #include <stdafx.h>
    7 o! P8 r' R. _0 p' F8 M2 H; q

  4. & S0 i# W" N9 z& T
  5. // This structure is used internally by the XSleep function # B4 o' Z) |  s: s
  6. struct XSleep_Structure
    : x0 C: `0 @3 P+ v5 F% C' p
  7. {* c  H1 K: X5 z. N- I
  8.         int duration;
    * a; ]9 R( v+ A1 ~/ p
  9.         HANDLE eventHandle;
    - X* u6 o6 y) A( K9 }" ?
  10. };
    # ^1 C- b% G; y4 V2 B

  11. / }& q% E( P+ V+ ]5 ]! J
  12. 2 p4 O" r. n1 W, _8 o) z0 G& u
  13. //////////////////////////////////////////////////////////////////////8 @' [1 |6 w5 @6 J, W$ H
  14. // Function  : XSleepThread()
    - B) E$ u* d8 o! G$ p0 l, z$ Z
  15. // Purpose   : The thread which will sleep for the given duration  N6 Q" N8 G4 y3 m. f; x2 X
  16. // Returns   : DWORD WINAPI
    4 j4 z& t8 \+ @" e; l, \! l3 @
  17. // Parameters:       9 X* x4 D9 v! w) _% X/ r" h
  18. //  1. pWaitTime -! K* S( Y6 ?/ I/ p( n9 N' A
  19. //////////////////////////////////////////////////////////////////////
    * ~; A( s" K# m
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)7 B4 a& v8 A: L" {3 d
  21. {0 O7 J2 X/ @* ~
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;7 G( `3 q# e1 n+ |

  23. 7 a- q$ j- j- l. [
  24.         Sleep(sleep->duration);
    . g2 Z! x, {' H; s* q- K
  25.         SetEvent(sleep->eventHandle);
    8 o$ r  \$ j+ z7 a0 r" V) _& [
  26. " m% L4 X% k  N, `) i
  27.         return 0;
    3 h) {0 q6 S4 K6 k- F$ z7 D  d
  28. }
    , U' y  n7 M) ], N, Z
  29. 8 k' e  l# Z" d% ~7 g! x6 ^0 g1 t
  30. //////////////////////////////////////////////////////////////////////
    3 }' g" Y$ S7 u' p6 S$ [
  31. // Function  : XSleep()# U9 @( c+ W0 Y' R
  32. // Purpose   : To make the application sleep for the specified time
    + N+ S$ s3 m0 K0 Z$ i0 w
  33. //             duration." Z  O: z2 n" ^6 F1 ?
  34. //             Duration the entire time duration XSleep sleeps, it
    : L$ T2 V" S" {2 l
  35. //             keeps processing the message pump, to ensure that all: S. H+ \. X* v9 N6 }6 i
  36. //             messages are posted and that the calling thread does
    3 H9 t3 @& l# J$ j) [0 G/ R9 W3 o
  37. //             not appear to block all threads!
    5 ~, m% H' i; W( o6 X( n6 N8 `
  38. // Returns   : none
    ( L, X3 R. i/ Q( S
  39. // Parameters:       " a* v; M& W  q2 X  }4 s; k
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.* j" ?0 ~- J  M4 \) a7 W
  41. //////////////////////////////////////////////////////////////////////
    2 m! f% I6 R. Z1 A% T( h
  42. void XSleep(int nWaitInMSecs,int nAscll)
    ( k) G# A6 P, o2 I4 T- Y
  43. {
    ! K* n1 r: \+ h( Y
  44.                 9 x3 i: [+ d  {+ D* G6 @+ X7 f
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
7 u# U1 B; B  V% K1 ~
, I: K8 d  T2 B+ W3 x" W
xsleep.h文件代码1 ^6 A9 z1 E, g5 W+ g( H# H3 }
3 v% [$ [/ ~, D5 i" I2 Y
  1. //Download by http://www.cncml.com
    2 B0 R& L1 z9 |
  2. #ifndef _XSLEEP_H_5 T9 z: M+ \( m! ]2 |" g; x
  3. #define _XSLEEP_H_
      p& X8 O: P$ t5 E" f% a

  4. 2 _! T  [: m- u8 o: K* R
  5. void XSleep(int nWaitInMSecs, int nAscll);- C$ k/ x) M6 t6 b9 ~

  6. 5 b1 D: J) T8 ?/ j  v* O& H2 U
  7. #endif // _XSLEEP_H_* |( l- E  K" y, A5 G7 E$ @# g
复制代码

* Y, u9 {+ s, y- q4 p6 y1 i6 p! f* z
- j' z% Z. A6 hmfc中的调用代码如下
3 E6 t3 P4 w+ E: m0 @3 A
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
  x: o$ `3 |. D

9 E* J4 ~& x+ D) P8 U( U5 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:03 , Processed in 0.066570 second(s), 20 queries .

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