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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
  }5 w0 H6 o& J# V" B建立 xsleep.cpp和xsleep.p文件: \, R8 o/ l8 B5 v$ ~( C
xsleep.cpp文件代码如下
0 v# Z+ S" _6 K- Z! `
  1. //Download by http://www.cncml.com
      T8 Q; L3 z0 I' B/ H
  2. #include <windows.h>9 {$ Q  t! \) h  r) e, S! C8 h- D
  3. #include <stdafx.h>8 \4 Y9 k! d' T; O' h

  4. - e" G: r1 S! G5 B- X% X
  5. // This structure is used internally by the XSleep function
    - [* C6 Z4 C$ O* |7 ^9 }0 K& m" A! `4 J
  6. struct XSleep_Structure
    . Q! e6 G/ G. @4 W# @# [
  7. {3 P7 Z" e: p- t  v4 H) ?
  8.         int duration;; d; ]8 a8 D3 k( W+ M; j$ h: I
  9.         HANDLE eventHandle;1 ]. B0 R- o( o5 M  E/ u' U
  10. };9 E: O; q0 v& ?3 f" f
  11. / C& F2 e% ~: e1 L# H& h! C( w1 B0 E
  12. 9 p" t) Y; X! U. F
  13. //////////////////////////////////////////////////////////////////////& ?% ^" g* A+ q2 M
  14. // Function  : XSleepThread()
    8 D8 b( X. x% \* k
  15. // Purpose   : The thread which will sleep for the given duration
    1 x( E& Q4 H) |. z& ?3 V* a1 p; F
  16. // Returns   : DWORD WINAPI
    / V) T$ a' L1 C. k1 R) @
  17. // Parameters:      
    # j0 M7 C5 T6 ]
  18. //  1. pWaitTime -
      d& ^) ]- ^" H: I
  19. //////////////////////////////////////////////////////////////////////( }" y& t2 Y7 y0 J, T
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    ! L3 M" w6 O7 X
  21. {
    + g8 P& F5 O0 _8 T  J1 g$ U
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;* [: B: r" Y. V3 ]

  23. / C: p. k. P" [: X: Y- y
  24.         Sleep(sleep->duration);' Q. ~3 a: Q3 C( d& G5 [8 A7 M# j
  25.         SetEvent(sleep->eventHandle);" _3 [4 E' X# t$ B1 N
  26. ; g' L. V9 n& P; U% }
  27.         return 0;
      G6 a) o! v' H6 `* m. Q
  28. }
    7 c' U( i$ t/ r6 {. K# B/ v

  29. ) h8 C2 A4 Y7 n1 m7 M1 {) T% [2 i
  30. //////////////////////////////////////////////////////////////////////
    ( r" {3 ~2 k% S9 v# I- e! J$ L, o( C
  31. // Function  : XSleep()
    # R5 G8 d3 q* u. h! ~; }; D5 I6 M
  32. // Purpose   : To make the application sleep for the specified time
    2 w7 X: v0 L& ]  E2 E5 B' Q
  33. //             duration.+ X5 B) [: F/ r9 E
  34. //             Duration the entire time duration XSleep sleeps, it7 C, c! u7 p& X, O- t4 b9 D
  35. //             keeps processing the message pump, to ensure that all
    1 D* [  \6 H  v
  36. //             messages are posted and that the calling thread does
    : M. J, O* O( C& c2 e1 x
  37. //             not appear to block all threads!
    7 k4 p# `: j1 ?$ r% B
  38. // Returns   : none
    # o/ o+ @" N5 h5 j8 C
  39. // Parameters:      
    9 }& @1 @4 ?; S6 f2 l
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.9 Z' ]) t& N9 d5 z
  41. //////////////////////////////////////////////////////////////////////9 a( e: ~0 `6 |& l
  42. void XSleep(int nWaitInMSecs,int nAscll)
    : a& {7 F# D; s. |( J7 j, m. t
  43. {& r: N  q2 M- a! e" L, O
  44.                
      J, U& W$ i5 S1 R1 J- a$ @9 ~
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

5 u/ ?5 x  Z* E! x- G( n& L8 ]( y* l. q
xsleep.h文件代码/ e$ J; A7 Q( q1 k0 |9 j" w
: }3 S7 p$ H7 A" I* Q
  1. //Download by http://www.cncml.com
    + K+ @9 s: ~2 W2 J# A+ R! f
  2. #ifndef _XSLEEP_H_* p% X5 ?: u2 }0 N3 a) w' [4 f
  3. #define _XSLEEP_H_3 [- d' L& L1 I4 k% }9 S# p6 D/ u! i& z

  4. 9 s3 }4 d8 C+ N: z$ N4 |5 g
  5. void XSleep(int nWaitInMSecs, int nAscll);3 e- {, X/ \# e( p- u* v- M! m

  6. / `7 z+ J, v: H# `' u" j4 t
  7. #endif // _XSLEEP_H_
    + G) M2 i& H% ~" i
复制代码
) u  G/ D  L8 v0 d

: j! J3 L. }# D, M; X  jmfc中的调用代码如下
  p( H5 K9 }: d  e
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

# Q$ J3 i( Q7 s4 M" p, p8 V$ g6 P" N8 y: i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:27 , Processed in 0.054419 second(s), 19 queries .

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