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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下5 n. D5 @! i2 G% f0 P
建立 xsleep.cpp和xsleep.p文件; @3 s: Y+ j$ Y
xsleep.cpp文件代码如下
; I4 S1 G0 i& U# W3 _8 y! h9 ]* Q
  1. //Download by http://www.cncml.com4 L6 s9 f0 k5 E" y% p
  2. #include <windows.h>6 T( a6 X  D. U6 R' ^/ q8 w7 K* Z
  3. #include <stdafx.h>
    1 b, V1 V3 i0 Y, M* l
  4. & n8 Q+ A+ m( j: f: v
  5. // This structure is used internally by the XSleep function
    $ a3 ^* P4 A! R  }
  6. struct XSleep_Structure
    6 C; z& N5 W# A. Z8 h+ w
  7. {/ f$ a, V& |) [% W
  8.         int duration;
      b' J  _; }0 w8 X9 d2 a, G& a" l
  9.         HANDLE eventHandle;
    ! K  S5 ~" P3 P  S
  10. };3 \: ?! S8 N7 w  \. ?1 C9 H
  11. ; Z4 X$ x! x9 J! ^: j
  12. * w3 s2 |7 P' s# L
  13. //////////////////////////////////////////////////////////////////////
    , ^: V: r  y" M  a& ]8 X
  14. // Function  : XSleepThread()0 [% g: _$ X1 Y
  15. // Purpose   : The thread which will sleep for the given duration
    " r# Y$ d/ p! a8 E. z9 G' R
  16. // Returns   : DWORD WINAPI/ l  H& z2 E* ]& J; y) g
  17. // Parameters:      
    4 U$ ^7 n3 O, N% E7 x9 ]& [0 S
  18. //  1. pWaitTime -
    - o+ T+ B" R; R3 ~* m" v* t
  19. //////////////////////////////////////////////////////////////////////; n/ h. F- `. X% A
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    3 V; i; Z  U) }7 l8 B) B1 t
  21. {' P/ k% n5 Y+ B' z% o
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    1 j" `0 D4 f9 E+ F! K" E  h( h4 ]
  23. 9 ]* Y9 D  Q0 U! D' i
  24.         Sleep(sleep->duration);. u  I& Q3 u1 _
  25.         SetEvent(sleep->eventHandle);
    5 _: E: |7 j8 V6 x1 K( j

  26. ) U8 f9 [. e1 u' B
  27.         return 0;% i  N+ B, D1 x/ `) I. U
  28. }
    7 M9 |1 ~! C; o5 f
  29. 0 j$ D" \$ G8 j* \. ~2 f6 _
  30. //////////////////////////////////////////////////////////////////////
    % q# S, t3 p" ?' h5 Z7 N3 @
  31. // Function  : XSleep()
    0 o6 s8 K. \; `* Z6 F" _% ?
  32. // Purpose   : To make the application sleep for the specified time
    " z% b$ z! K; b- G+ Y" A4 R
  33. //             duration.
    * m: o; A- y1 v: A+ A6 I
  34. //             Duration the entire time duration XSleep sleeps, it
    8 o( b4 h; m2 ?' E+ T$ ]
  35. //             keeps processing the message pump, to ensure that all
    $ `5 `" Y0 Z, Z) }3 Q6 y  f
  36. //             messages are posted and that the calling thread does
    . n/ q1 ^, ^0 w! r/ i$ o0 n& z
  37. //             not appear to block all threads!, I6 T. j. u  g2 w* e% e
  38. // Returns   : none
    8 L  ]( ~7 {) c  g3 G" F; t
  39. // Parameters:      
    . m/ v3 S( o' Y8 L; H* b
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.1 ]7 ]2 t: A: B+ |7 Z
  41. //////////////////////////////////////////////////////////////////////: `. f7 [6 Q  `+ H" d1 Z5 g# [
  42. void XSleep(int nWaitInMSecs,int nAscll). x6 ]8 X# k& o, e/ a3 V7 `' y7 E, L
  43. {
    * T9 h% \& o1 O! F0 B
  44.                
    + A/ O8 d) U+ p7 {2 C- z0 r' N2 V
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

& I" J( \  @; d& ]$ K2 {6 [8 L
) q4 R: X0 k- b) X0 i& Sxsleep.h文件代码
. S" A( x6 _4 F( F" Q. ?; {  @' J0 Q% X1 Q; w9 i
  1. //Download by http://www.cncml.com
    6 v7 k1 Z" x$ U; O
  2. #ifndef _XSLEEP_H_
    ! w4 @3 {1 x7 F- K0 _1 s
  3. #define _XSLEEP_H_- v; h0 w/ x7 E- _" w2 B; o+ r

  4. 8 b6 Z* I, \+ |$ x7 n% u
  5. void XSleep(int nWaitInMSecs, int nAscll);, J, f  h7 r. W. _$ E; {4 R
  6. . q4 Q4 o# ]: ~+ d1 g. l5 n
  7. #endif // _XSLEEP_H_5 o- T. ^9 m( Z' `$ Y* l: w, M
复制代码

4 `* \4 U* J' \: B/ c- w
' M' v5 j, }8 z/ M: _9 t4 S5 _mfc中的调用代码如下
( Q8 d9 g2 G; J7 p
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

- j8 X7 h% `) I
. l8 c" I/ ~$ d0 k& p. }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 03:11 , Processed in 0.052983 second(s), 19 queries .

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