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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
# o3 I' i- \& v' \建立 xsleep.cpp和xsleep.p文件3 d1 s, Z0 `8 f" d) ^
xsleep.cpp文件代码如下
9 O0 Q9 T- p( B6 u5 D: l
  1. //Download by http://www.cncml.com5 u2 X2 Z8 v8 d+ f8 i
  2. #include <windows.h>
    + t7 H# C9 _( c4 L" |0 t: S2 T
  3. #include <stdafx.h>
    $ C  F! l, `& }  u1 w9 a8 M
  4. 2 p3 M; i2 b7 Z
  5. // This structure is used internally by the XSleep function
    6 G0 `: m- `6 q% r
  6. struct XSleep_Structure
    * r" {1 {. {5 G: f  X. G
  7. {
    1 n0 M, y" l9 Q
  8.         int duration;
    " \7 `( o9 p) C! }  C1 \
  9.         HANDLE eventHandle;
    0 p  L8 B% U3 Q' Z8 \
  10. };6 b3 j( P" g/ m& M6 [

  11. 8 Y3 S* e/ v7 s& C9 ~; O# w' h4 c

  12. 6 @2 W) ?& j5 z4 u% p- o) E
  13. //////////////////////////////////////////////////////////////////////0 |, s/ r5 t* r, w% o
  14. // Function  : XSleepThread(). R# l, g2 O) d
  15. // Purpose   : The thread which will sleep for the given duration# A( X5 E& N) B
  16. // Returns   : DWORD WINAPI
    ' w5 _5 d' o$ I
  17. // Parameters:      
    + [/ @( X7 p0 O- W/ K8 y4 w3 k
  18. //  1. pWaitTime -
    ) j+ z' c4 t) n$ s, c& P
  19. //////////////////////////////////////////////////////////////////////- ]/ ?8 }7 I: \" c
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime). z. x" d6 k, a$ y% F4 \- D
  21. {
    3 i) m; q, o0 o: O4 J8 j
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;+ [) j1 y, j& W
  23. ; N/ L  v) P& ]+ |7 w( }% c# [; s5 k
  24.         Sleep(sleep->duration);- E' N9 w' t* R& t$ T- c* p5 q; V
  25.         SetEvent(sleep->eventHandle);' k0 y# e2 k: j& d. S  O

  26. 2 v( M7 f" Q# k/ o" _. k
  27.         return 0;
    2 K. Q& H; Z% ?4 v9 H
  28. }. C% @( |* K0 t5 q9 U, R5 ^/ A

  29. * Q6 z1 m& j( c* b# d6 x$ O2 o8 ^
  30. /////////////////////////////////////////////////////////////////////// g7 k( k! k, R+ w% M2 j
  31. // Function  : XSleep()8 `; x$ w% [( [% x- ]
  32. // Purpose   : To make the application sleep for the specified time; o2 M" R, K" P) Z  o& Y
  33. //             duration.- @& P, c- S/ k, }
  34. //             Duration the entire time duration XSleep sleeps, it
    $ l2 v' e7 B6 l! A- A3 n
  35. //             keeps processing the message pump, to ensure that all: l" f1 k6 V. ]; }
  36. //             messages are posted and that the calling thread does
    # U7 f$ X  i' L% t8 G' a. G0 m
  37. //             not appear to block all threads!( p4 n8 R, v, z7 L1 j: H% V$ k
  38. // Returns   : none
    . k5 F9 m) D" l0 E+ c
  39. // Parameters:       : Q5 V* z. c$ p
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.! n( j9 i# F' T: U- i: `
  41. //////////////////////////////////////////////////////////////////////
    4 [  W& S) y. G) E" _' d; s; L
  42. void XSleep(int nWaitInMSecs,int nAscll)2 X5 N+ u+ ~: D" D% j
  43. {
    & l. R- v6 A1 c3 v; `0 f/ x1 ^
  44.                
    : A  V+ }1 o3 l  @
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

( z4 D* \/ Q7 w* \  q: Q, H: f) h" z; ?2 I! p9 K( @5 D1 X7 h5 R
xsleep.h文件代码
& G* J4 ~- g5 z  H( u
, R4 r! \5 @% v7 T
  1. //Download by http://www.cncml.com
    # J6 n4 @6 Z  U$ e! n
  2. #ifndef _XSLEEP_H_
    ' ?: Y; x* ^+ K% P  L, y
  3. #define _XSLEEP_H_
    ) ]/ d+ x% I+ F9 x1 g2 v, D0 E) m

  4. " z1 h1 y) w$ @) L& s0 o: y
  5. void XSleep(int nWaitInMSecs, int nAscll);
    . k1 g  ^- G% L; A4 v5 A) e* `
  6. ' j' r4 c- y% P4 N) ~1 ~
  7. #endif // _XSLEEP_H_
    : ]' ?5 {7 a1 l, x: \/ Y$ E6 y& r
复制代码

9 ?. Q/ y  m) O* l/ |' [  i  Y1 s. c/ W9 @$ Q: f% ?
mfc中的调用代码如下
. d; u; d$ Y8 X( y2 J
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

, G* v9 e/ G' }0 h  v  `$ R
$ W/ V4 U  D0 P5 T* D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 18:24 , Processed in 0.057517 second(s), 20 queries .

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