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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下% v2 N! |9 N/ o) ?
建立 xsleep.cpp和xsleep.p文件+ T( e6 c7 T- d( o1 Q
xsleep.cpp文件代码如下
* h( n2 J$ m0 X  n$ K. W
  1. //Download by http://www.cncml.com
    4 S( X1 g" y$ r- _4 {3 [" I* p/ k
  2. #include <windows.h>
    2 h# c9 D% D+ c; x. n
  3. #include <stdafx.h># S; w  p2 ^0 `7 C) r

  4. ( x0 d7 P: f: N
  5. // This structure is used internally by the XSleep function
    ( a7 ?5 O  Q8 j4 _
  6. struct XSleep_Structure
    ( ^/ L+ Q  W! {9 }( ?& J
  7. {
    4 X- \7 C5 \4 T- a) I3 }" x
  8.         int duration;
    9 m' G' x' H2 j# M1 A6 I0 ~* i
  9.         HANDLE eventHandle;* B6 q$ g# _( l( U3 e5 n
  10. };
    % n& ]3 V0 b, o0 _8 c( z

  11. 5 ~, m) l8 ?) P! }+ e" M$ b

  12. + _$ B: _; ]6 V% f' N- K8 x0 X
  13. //////////////////////////////////////////////////////////////////////
      r3 O0 Z/ l' E$ x9 [
  14. // Function  : XSleepThread()6 O1 Y/ R( Z3 q3 j4 Z" _' }
  15. // Purpose   : The thread which will sleep for the given duration
    0 Y3 H- Z' @- {& K0 n  O  U& K
  16. // Returns   : DWORD WINAPI
    7 m. o/ I4 p6 ]1 @" q
  17. // Parameters:       & ]& @' ], p7 o, ^
  18. //  1. pWaitTime -
    " u9 i% T/ a4 C" O( v
  19. //////////////////////////////////////////////////////////////////////4 P6 y0 U) K( r$ N& _! n8 b) u
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    * E) i# h2 `+ d' Q3 A' o0 `7 Q
  21. {
    6 m/ e. C/ D5 F  M0 i/ S+ w
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    4 y- V  o& S9 T+ J

  23. ( A* w! i  Y6 A6 Z9 ~
  24.         Sleep(sleep->duration);
    # d, t0 U$ k0 k
  25.         SetEvent(sleep->eventHandle);$ X  }! u6 R3 D1 x6 R$ K
  26. 4 C" F7 J$ ~; h* c* y) G/ R
  27.         return 0;+ E$ ~- o" o. N
  28. }/ l, T7 Q7 L; Y" t3 X5 s

  29. : x+ `, b* ^# K( y8 b# v
  30. //////////////////////////////////////////////////////////////////////
    ; V  P6 \" a3 X! X- i' B
  31. // Function  : XSleep()* n4 u$ D# |) i8 U2 B6 q, d6 i
  32. // Purpose   : To make the application sleep for the specified time
    ( r, D, f) ?. O, O+ L
  33. //             duration.
    8 e9 z/ Q9 `+ k- h+ C# E
  34. //             Duration the entire time duration XSleep sleeps, it
    - S5 e) o- I/ ?7 ?, a
  35. //             keeps processing the message pump, to ensure that all5 ~/ |. u; A8 b" a. j
  36. //             messages are posted and that the calling thread does3 p, G& u+ N- n) C. u$ ^4 ]3 s
  37. //             not appear to block all threads!3 A8 i7 U5 K' k# M+ u6 _6 A$ z
  38. // Returns   : none9 v( E  j. D5 Q2 b" T/ \6 r
  39. // Parameters:      
    - y3 X2 j  R1 N+ b
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.$ d  ^( O3 Q& H" X* a0 t
  41. //////////////////////////////////////////////////////////////////////  u' P: X0 J0 C" q* Q9 l6 Y, B
  42. void XSleep(int nWaitInMSecs,int nAscll)
    7 z; c  I7 N/ Q( G( F$ K* l
  43. {
    3 z9 f: @# B3 H/ f7 T3 q) ~- Y3 A+ r
  44.                
    # [% H& J. t- `) q# M$ B" y+ V
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

9 |. {) p/ u  l6 S0 S/ V7 k- H, v! Q0 K3 ]
xsleep.h文件代码5 ], `: t8 ?# g

" L- N. A7 q9 ?$ H% N0 Q' o# i; D
  1. //Download by http://www.cncml.com
    + W  P; x# w2 `4 M$ K: `$ S1 S
  2. #ifndef _XSLEEP_H_
    % R/ @; t. x8 J- O$ O! @
  3. #define _XSLEEP_H_
    & @% Q/ }9 K1 G5 N
  4. $ B- m5 y; O; A6 K4 r# a" b- @
  5. void XSleep(int nWaitInMSecs, int nAscll);2 y' o0 b+ }: i8 m# j% K

  6. 0 i& \3 W8 f0 L5 j2 `. G  C
  7. #endif // _XSLEEP_H_% V! ~! Y5 c" A  s
复制代码
/ y3 D, K2 p3 }+ K) E- A1 Y  U% W) a/ e

/ Z0 s# j% Z  M1 O, t+ h1 jmfc中的调用代码如下
2 l0 k$ w% k8 }1 p% v4 `$ d! q
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

2 g3 X+ D: Z# y( P# D: z5 V) e" J
- u& A5 p, I. e2 V9 D& P, E0 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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