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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
方法如下, R+ S8 b# }6 k& N4 H/ u
建立 xsleep.cpp和xsleep.p文件6 k' c. U, ?' z: B  x1 s4 P/ L
xsleep.cpp文件代码如下
8 K. U! I: y, M
  1. //Download by http://www.cncml.com
    7 X) f: }8 A% B- o. u- g$ s$ f
  2. #include <windows.h>
    7 l" C6 ^1 R9 l8 n, t; y7 J
  3. #include <stdafx.h>' Z$ `; u* e, G# F% b3 I, p
  4. 7 O0 S/ @% @. i5 E0 _, K  a
  5. // This structure is used internally by the XSleep function 7 Y, n  v) |# Y8 O
  6. struct XSleep_Structure
    2 l0 a0 g% f$ |( O& o- R9 E
  7. {
    : W2 h+ x9 ^0 |+ z: B
  8.         int duration;5 Z/ ~! o# r, ^" c' ]
  9.         HANDLE eventHandle;
    9 ]8 X' |: W; \, M- N
  10. };
    . L% ?9 I( V8 H4 \
  11. ! M( }4 M: \6 N

  12. 3 ^* \& g. {1 `0 C+ C
  13. //////////////////////////////////////////////////////////////////////
    3 \+ |& ^- [& U  I/ P( [: j- }8 ^$ X
  14. // Function  : XSleepThread()
    $ E+ M/ n5 d' @
  15. // Purpose   : The thread which will sleep for the given duration
    3 c0 B- F& w1 Z9 y: e6 f
  16. // Returns   : DWORD WINAPI( \1 A9 e- @* p. K, D/ [# w
  17. // Parameters:      
    ' [% a& g! R  P' u( ?" \
  18. //  1. pWaitTime -# x4 x; d" F, g7 e+ G
  19. //////////////////////////////////////////////////////////////////////) g$ o1 j) |7 m3 p/ Q
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)8 u# I( G3 [& e8 B* c) l; k
  21. {1 c& o2 x$ J% E* H) F) @2 W
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    2 \& h( E# n& y- I! o/ j+ u0 }8 u

  23. $ H4 f- ]3 Z4 n) ^  g1 \
  24.         Sleep(sleep->duration);
    ! ?( d- F# ~( D: m
  25.         SetEvent(sleep->eventHandle);; [# [2 r7 p" B3 l  j
  26. * l: t% F4 `+ W+ z# D% K
  27.         return 0;
    % J( C* B7 I: h& S; [$ z
  28. }/ v  D  I8 h4 z# W0 v2 t! G( V

  29. 2 k* @4 p& l8 J7 h/ Z
  30. //////////////////////////////////////////////////////////////////////
    1 o5 u' t9 Z& a  j$ H
  31. // Function  : XSleep()
    $ c2 r$ o. ^( a' ~3 r
  32. // Purpose   : To make the application sleep for the specified time
    8 H3 R8 [& s' L( i% s1 p9 ^+ Q6 o
  33. //             duration.
    # M; Z- Y+ z  m% O% i
  34. //             Duration the entire time duration XSleep sleeps, it
    9 i* S; ]; q9 M; Z  T$ T1 z; H! w
  35. //             keeps processing the message pump, to ensure that all: H. T: Y- b6 v% L3 P" S
  36. //             messages are posted and that the calling thread does
    1 M- w7 ^. S( _4 x0 r' o# U. N
  37. //             not appear to block all threads!
    5 j% c, X; B  o' K5 [( H" Q. W
  38. // Returns   : none
    9 Z9 G( ?# O% q: T2 T, x
  39. // Parameters:      
    ) b3 p( `, V- J' R) Y
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.* \. f; H! x+ ]
  41. //////////////////////////////////////////////////////////////////////2 P% ?) t5 w! T2 \* O
  42. void XSleep(int nWaitInMSecs,int nAscll)
    ! r! T2 T& F. ~# i' \: m
  43. {! T2 y5 Z. i- J- Z0 N$ o
  44.                   x7 o2 k8 G* C8 [5 k  m
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

2 n9 y3 S. U7 C2 x0 M; m' y5 H8 }# H0 j% N1 C6 _$ v0 a9 V
xsleep.h文件代码1 x( W4 Z) I& k+ U: o8 H5 |& |
% a" i" h* O( r, j1 }
  1. //Download by http://www.cncml.com  T: T6 E. h9 y) C- ]& r
  2. #ifndef _XSLEEP_H_
    / ^: y9 z0 F$ Q, |
  3. #define _XSLEEP_H_* L8 h' _; Y. d: x$ n5 L: P% b4 |0 H- G

  4. ; T! W3 x4 n, h  z0 _9 C, n# P
  5. void XSleep(int nWaitInMSecs, int nAscll);1 o( Q; |3 \3 r7 G6 W$ L% F; V
  6. 7 H% u. d  L( M% R/ [1 m
  7. #endif // _XSLEEP_H_
    & a. ]) G2 L/ r/ M
复制代码
- P( {- R# a: A/ [2 ^8 e
) R# r& _" |  o1 D5 W0 ~) ?% P" o
mfc中的调用代码如下- y* T' K3 d. a1 Z" `' p
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
: K  Y! T+ h$ W
3 f& |$ i2 d* ~- f6 O9 w4 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:55 , Processed in 0.053904 second(s), 20 queries .

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