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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
方法如下
  w1 |- Y8 F  D  i% m建立 xsleep.cpp和xsleep.p文件. t1 q7 a* _0 H# S' r! S: c
xsleep.cpp文件代码如下
' p( G( a+ d4 O: z* G8 L, W
  1. //Download by http://www.cncml.com
    ; ^/ m8 Q& e2 a" s. f. ~/ \
  2. #include <windows.h>
    , k' c  r* G! H/ ~8 m7 `
  3. #include <stdafx.h>$ T& z8 p* _8 ~7 z" l, c4 k; K

  4. ' S/ w6 ?9 _# e/ ?! M
  5. // This structure is used internally by the XSleep function 2 `) L/ H3 Q2 r; W
  6. struct XSleep_Structure
    * l  r7 _+ o' D- A5 b
  7. {
    ( \5 k" D; A) h" @. j1 _& w" r1 y
  8.         int duration;( |- z$ s# K& D" y
  9.         HANDLE eventHandle;$ e, {& s+ q8 v  }( R: D
  10. };7 f8 r4 G' ]9 r/ ~9 J9 U

  11. ' _" E) m0 K1 X# j1 ]3 p% j' \# K
  12. & h' V0 x, t) r5 n* F
  13. //////////////////////////////////////////////////////////////////////: s3 A5 L  f/ }1 b7 ^' ?$ N8 P2 C
  14. // Function  : XSleepThread()
    + I3 ^# S2 E& e" p; J! S
  15. // Purpose   : The thread which will sleep for the given duration1 W- w6 k! I  `
  16. // Returns   : DWORD WINAPI
    5 N+ b/ L; `0 G3 S6 q
  17. // Parameters:       + E8 z  H( b3 _
  18. //  1. pWaitTime -
    / b, ~6 s' [# M. f* `7 B
  19. //////////////////////////////////////////////////////////////////////4 ?8 f7 h; I) D6 S3 i
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    # b* ]6 a. f2 d1 J8 X, o4 j, _6 h
  21. {
    / a. T  v4 C, `- O$ w
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    - l  B3 {+ z4 ~2 D4 s2 y8 Q
  23. ) Q8 G6 w: K9 r% w
  24.         Sleep(sleep->duration);
    , A: P- Q; h" Z7 E0 p
  25.         SetEvent(sleep->eventHandle);
    2 n0 q) i7 f: T' N
  26. + L& I; H! C* w" z2 E
  27.         return 0;3 W5 A, x# l% E3 j! h. [
  28. }
    ; I/ F1 f/ T+ v9 Q6 C) o% O, w
  29. 2 X- t8 X5 ], D0 C
  30. //////////////////////////////////////////////////////////////////////2 B4 s# }- C1 ]3 m
  31. // Function  : XSleep()
    9 a: f. L8 Y) c3 l2 n6 i
  32. // Purpose   : To make the application sleep for the specified time" {7 Q4 p0 c4 \
  33. //             duration.6 L1 k2 U: L: ~. D# s
  34. //             Duration the entire time duration XSleep sleeps, it  A7 u: ]; P8 S! M# k- Q
  35. //             keeps processing the message pump, to ensure that all% Q) u% X: @, q1 Y1 d
  36. //             messages are posted and that the calling thread does
    7 m* y7 g+ H8 K( i4 y
  37. //             not appear to block all threads!: X$ a& p3 V( ]) r* M9 b) ~7 L
  38. // Returns   : none
    ! w2 `% S5 n/ W: J( |+ x7 F
  39. // Parameters:      
    , k/ W& x. C- u. s. k5 w
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.* ]7 R# [3 b. Q. `( z0 W
  41. //////////////////////////////////////////////////////////////////////
    : y1 z# n( E8 x  n
  42. void XSleep(int nWaitInMSecs,int nAscll)
    2 q1 Z% e3 t  Z6 G
  43. {4 H. }8 p8 m) \( t& s  q5 H) s
  44.                
    + Y- g! e! q0 U; ]' L5 j: M( ?
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

6 v5 N7 h" e7 F2 t# w1 z: z2 k
2 \7 a2 M2 S9 Kxsleep.h文件代码
. {' ^5 C: j/ B6 v
7 o. h4 a) N% H4 t6 y: l2 ^
  1. //Download by http://www.cncml.com: M$ M- z! v; G& F; j3 v' m
  2. #ifndef _XSLEEP_H_
    3 ?5 r  r! V0 k: Q# U' k. ]
  3. #define _XSLEEP_H_( A1 S" w# c! p7 e6 P
  4. , Y7 ?( x( E, E7 P. [8 v6 F! u
  5. void XSleep(int nWaitInMSecs, int nAscll);
    : ^- Y/ }& l/ U2 o  E
  6. ) J" u2 Q! F; k  f+ m
  7. #endif // _XSLEEP_H_, n; f( l8 B& C
复制代码
; m( C  V0 ^& [8 B; B3 l# i0 z
5 S; A& ]5 G, m% _/ D3 s
mfc中的调用代码如下
* ?, t/ _5 E8 T: K2 t
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
3 e! G2 e$ [& q* I( j7 m2 ]
. O1 L) ~8 H- a! W8 C: ]3 O/ N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 17:13 , Processed in 0.163136 second(s), 22 queries .

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