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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
/ s- v% z4 Y: z  t+ ~* Y. A! |建立 xsleep.cpp和xsleep.p文件3 x1 t; d& Y* \# K+ Z  g) T
xsleep.cpp文件代码如下
" b- w' ], u2 j- S2 x4 e
  1. //Download by http://www.cncml.com
    9 s: L1 q+ B& @
  2. #include <windows.h>
    - v: _4 g- j) p0 Y) C$ w) A$ A" l- D
  3. #include <stdafx.h>
    " S3 m- R1 G/ d" L2 ]
  4. / \7 Z: f6 d7 y
  5. // This structure is used internally by the XSleep function $ X' C+ L) D5 U3 H* {" k# m
  6. struct XSleep_Structure% L2 M  q  J+ I. ^, S' Z" m
  7. {5 x; k+ e7 A) P( O; O" m
  8.         int duration;
    % U( j! e3 r7 M3 e' ^
  9.         HANDLE eventHandle;
    / U6 p* [* ~7 Q/ C; t' R
  10. };, }* r2 `  M4 t0 E* t; w
  11. - g% v- \5 P" c5 N2 h/ ~
  12. % D) h/ K& D/ ?; ?1 R9 w
  13. //////////////////////////////////////////////////////////////////////
    , c9 U' n3 u: h: v% o
  14. // Function  : XSleepThread()% m  e- h& D# k5 w1 b! m, C, z! {
  15. // Purpose   : The thread which will sleep for the given duration
    & k2 y8 d: G6 Z; l7 W. v
  16. // Returns   : DWORD WINAPI
    3 X( [! f5 k8 q- b  l& E
  17. // Parameters:      
    4 F+ X" Y$ g/ \4 ?* w3 x" _
  18. //  1. pWaitTime -1 d( S4 t% e, R, s& h4 h
  19. //////////////////////////////////////////////////////////////////////
    6 P$ [& d1 I6 k- J, i+ |, {
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime), o) V7 o; x4 \; ?4 l' o9 m' ~! A+ F
  21. {" y$ p9 z+ N' J0 j* [- V  m6 V
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    $ [3 {! ?- e1 U
  23. 4 R" C6 g/ d0 F# N5 ?, x
  24.         Sleep(sleep->duration);  B8 I! c. Z4 t, f, x
  25.         SetEvent(sleep->eventHandle);" B0 A1 K; ?- |  p8 X9 ~7 B
  26. ! U8 y+ f4 K6 q- t0 F6 z! T5 E
  27.         return 0;1 c$ l: [1 R6 t0 C
  28. }- y5 I! ~" {7 M1 {: W1 d1 H, h1 t

  29. 3 d' |2 b8 V, I$ I7 v7 ]
  30. //////////////////////////////////////////////////////////////////////& H3 b, B  w7 w- c
  31. // Function  : XSleep()
    $ y: g# _4 v/ h: P
  32. // Purpose   : To make the application sleep for the specified time
    ; x! r$ u  g- U$ R& H# i% l% y
  33. //             duration." t! @9 R  @/ O
  34. //             Duration the entire time duration XSleep sleeps, it5 m) d' w1 e) V! Y8 @' w% O
  35. //             keeps processing the message pump, to ensure that all
    ; g, c! d+ r0 Q1 l* ^; H
  36. //             messages are posted and that the calling thread does9 l! N. W1 y6 j" `& o9 w
  37. //             not appear to block all threads!# \4 v1 ^4 C6 l: o3 |- I
  38. // Returns   : none9 d" t& W; D1 e7 y4 K6 G9 ^3 P
  39. // Parameters:      
    1 C" I# n- H4 j4 M4 G
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    / w( q. y5 X/ M6 F# r
  41. //////////////////////////////////////////////////////////////////////
    4 F& l  g) h/ x( n* h; Y5 ?
  42. void XSleep(int nWaitInMSecs,int nAscll)  y0 i# _/ ]) b: s
  43. {) n' x" Z' `5 M% J5 O9 l6 u
  44.                 # [4 w' U: P- Q/ k
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
& @  n* q8 M' ^# {

6 I/ X3 X; g& G2 o4 W5 Cxsleep.h文件代码" L! H* d5 Q: o8 r+ z
7 F9 |, B5 k% I! t1 d
  1. //Download by http://www.cncml.com2 u$ ?8 Q0 Q3 v( I& V
  2. #ifndef _XSLEEP_H_
    $ a# f$ C4 N3 j2 l, k7 I
  3. #define _XSLEEP_H_
    - @, d! l9 F" h+ V

  4.   h' i7 p5 R$ P: S
  5. void XSleep(int nWaitInMSecs, int nAscll);
    1 A- }/ x5 L# m( f4 t7 G3 M3 l$ H

  6. ( k; j6 |4 C* X, L% Z; u6 _- w
  7. #endif // _XSLEEP_H_5 |2 P: s) D2 |4 X. O& z' \
复制代码
+ @; z  k. {: s& C5 A

4 }  A" X+ d. gmfc中的调用代码如下
3 [5 N( G& F$ O( ~6 K
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
) z- g; y3 n% B  A. m; m
) q6 ~: {' V+ k7 ]% l) N6 K0 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:03 , Processed in 0.069811 second(s), 19 queries .

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