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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
方法如下
% K0 i8 \: p* n8 ?( |建立 xsleep.cpp和xsleep.p文件
, M: h6 ~) F9 t/ ]; g; f9 Wxsleep.cpp文件代码如下- ^8 H2 q: i  }  C, M3 T
  1. //Download by http://www.cncml.com
    : f/ z: y. Z. u0 T8 P) k
  2. #include <windows.h># K/ L9 y9 P' J% z3 Y8 ~
  3. #include <stdafx.h>
    ; p2 `- Y3 l* t. Q% P

  4. 7 `) E( Y: i2 S8 |
  5. // This structure is used internally by the XSleep function
    7 J7 z! O- k8 ~
  6. struct XSleep_Structure! f/ X. ?9 `: _7 k) g1 ]9 b
  7. {7 {" v! w; J) o8 Q
  8.         int duration;
    - z9 E" m) G, I( O$ a3 Z+ B
  9.         HANDLE eventHandle;0 Y& W! I5 H  _, W  @) S8 y
  10. };  S# B" n; ^* M+ f# _8 J1 y- ?
  11. + R  O( q8 K8 W& D, ?5 G+ y* q' d: S/ Q
  12.   J1 V4 C( v8 I+ Y8 f
  13. //////////////////////////////////////////////////////////////////////
    / L( C- u' D! Q
  14. // Function  : XSleepThread()
    " }# ^- H3 \- y
  15. // Purpose   : The thread which will sleep for the given duration& {0 B* ?+ Z2 m- V* j, N: F
  16. // Returns   : DWORD WINAPI3 ^0 W% ^6 Y% N" }5 x. Y( b& b1 A
  17. // Parameters:      
    ( S& o. x, O! }/ V2 R. d
  18. //  1. pWaitTime -
    ' D; V# N9 U5 s
  19. //////////////////////////////////////////////////////////////////////% m( i; H; a; W- p4 q* ?5 e
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    ; N) o4 O8 W* {" W5 V# b
  21. {
    1 \8 v& g) d+ a4 i) n4 \) p  ^! t/ X! q
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    6 X7 _6 q+ Z; t- r% q# Z+ T

  23. / g7 K# @, ]- e
  24.         Sleep(sleep->duration);
    & u% f) ?  A* {& y- s
  25.         SetEvent(sleep->eventHandle);- s2 N7 l$ V+ Y9 U0 z$ q5 T

  26. $ h$ `/ v) ]9 C6 J! U
  27.         return 0;
    7 D+ j9 ^9 u4 N* R
  28. }
    3 @+ I1 |' A# p/ M  e0 c8 s
  29. 4 {6 P$ z! U. F7 o, `1 G$ T* d
  30. //////////////////////////////////////////////////////////////////////6 y( p% M* i  j( y& t. h! m; T6 }: H! F
  31. // Function  : XSleep()7 k- L! T# |4 L3 n/ K
  32. // Purpose   : To make the application sleep for the specified time. m8 n; W% K: `1 D9 q9 U
  33. //             duration.
    8 l* J& B$ j/ W& v8 s' V( k* ^* o
  34. //             Duration the entire time duration XSleep sleeps, it
    % r* J! D( ~6 g5 j* h$ j
  35. //             keeps processing the message pump, to ensure that all1 _$ o0 d: G7 b
  36. //             messages are posted and that the calling thread does0 d* E0 R* w  x$ b
  37. //             not appear to block all threads!  _  d& h: v9 R$ Y
  38. // Returns   : none+ ~' a4 B+ X3 A- V
  39. // Parameters:      
    ; e# h0 y5 p; m* C
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    * f: h3 s5 i0 b/ s2 s
  41. //////////////////////////////////////////////////////////////////////9 x* M' o; h) S- k
  42. void XSleep(int nWaitInMSecs,int nAscll)- \, b+ q; Y7 U  X+ J
  43. {1 \4 g) b) ^  M1 Z5 t
  44.                
    * ?  c! t- I) j6 l- ]0 c
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

! {- P6 w' }$ o+ s- D6 O5 p- K: g; g8 L- P1 i* Q* f& _; }
xsleep.h文件代码
* n0 J2 c; a: J& U: }
, M  k* x4 V! m$ O4 b4 r" v
  1. //Download by http://www.cncml.com
    ' V+ p" t5 q& c7 N! z5 E7 ^% L
  2. #ifndef _XSLEEP_H_2 _/ N+ R8 f2 e' x; Z$ Q
  3. #define _XSLEEP_H_
    0 |! m4 p1 g  \7 V$ t  Q$ F, m0 l  b
  4.   D- U8 S+ W$ X" d+ N6 b, E
  5. void XSleep(int nWaitInMSecs, int nAscll);
    + I8 D  u/ ?0 U1 s
  6. , A. K% j% G6 d5 n. R6 R% ]7 Q
  7. #endif // _XSLEEP_H_" k1 ~4 o7 e  K# e$ `+ c" t, I. U
复制代码

. q# h% h) Z% c; |' d: G3 N" |
: ~& W7 F# ^  s/ K2 m1 emfc中的调用代码如下
* Z. ^- p( A$ y/ q& ?  j0 W5 P
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

3 g8 i7 Y  [* E
# ~" {' d$ V/ U; r6 P1 n2 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-20 13:22 , Processed in 0.110660 second(s), 20 queries .

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