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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下1 W: E. v+ V7 c1 {0 t8 O# y% `
建立 xsleep.cpp和xsleep.p文件
- c- \9 m0 w' F, Wxsleep.cpp文件代码如下
# o" A  C% R0 H& r9 m' a/ ?6 ^  Y6 p3 h
  1. //Download by http://www.cncml.com
    7 ^" D2 }' y# D9 Q
  2. #include <windows.h>6 m8 j* I& h7 Y$ f
  3. #include <stdafx.h>0 j/ `- u& v. v8 n

  4. 7 V8 i# i1 @# K' S
  5. // This structure is used internally by the XSleep function
    ) \7 \, R1 @: F9 }
  6. struct XSleep_Structure
    ! v$ K$ l2 u- ?: ^* b$ V2 C/ b
  7. {3 L8 v" T( X& N4 y( l2 C* b( [
  8.         int duration;$ ?, F; K; U2 f: E1 u$ f+ t
  9.         HANDLE eventHandle;& \2 w- E. O! d: e* `3 `8 P1 l
  10. };
    & v1 g3 x7 ?* a* r

  11. ! h- N& g! f& T+ g  N- g' S

  12. / K6 @2 g9 z9 F
  13. //////////////////////////////////////////////////////////////////////
    5 f0 @' M8 ]& m+ |7 W4 w4 U
  14. // Function  : XSleepThread()4 z' a+ I$ ]' D. A. f
  15. // Purpose   : The thread which will sleep for the given duration, K! o# A! `: ?1 x( Z
  16. // Returns   : DWORD WINAPI
      a. M( b2 f5 ~* m
  17. // Parameters:       ; w5 _2 s: ?  t& g& z0 k
  18. //  1. pWaitTime -' M! w2 j6 F( U: M/ }
  19. //////////////////////////////////////////////////////////////////////
    5 I8 B* H- ^* M0 Y. T7 r
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    . N9 [; W, P  D( ^" l
  21. {
    - G; T* ?# e0 g( h. L% X
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    % J! a# P2 o/ j7 U  F- i: V1 G) g* ~

  23. 0 R$ R: C7 }5 h1 C8 `. ]: }. o+ f
  24.         Sleep(sleep->duration);7 K. M+ v4 Z) Z7 U: B3 X, k
  25.         SetEvent(sleep->eventHandle);$ {" p" h) h& q' [3 Q
  26. % n! i) W! L& }: n# B2 B6 }* I2 U
  27.         return 0;
      i4 ]7 J6 r. ?8 B! X' A+ K
  28. }' g' x" Y7 v2 q5 Q1 a# a9 k
  29. : Q- c. R' L3 ~, H' ]4 ^1 A- X
  30. //////////////////////////////////////////////////////////////////////# X1 b; Z' i) H. [: K2 I7 W" b9 N/ O/ |
  31. // Function  : XSleep()2 J% C( G3 W* m: q4 N
  32. // Purpose   : To make the application sleep for the specified time+ K9 [9 V4 ]4 B
  33. //             duration.
    & p: `7 U0 @# w; K$ h& d
  34. //             Duration the entire time duration XSleep sleeps, it9 v6 i1 u/ c; i% X: l0 U& N
  35. //             keeps processing the message pump, to ensure that all1 N# |5 t+ I. m# V5 y! ^' x) Q8 C
  36. //             messages are posted and that the calling thread does4 o- U" O, Q3 {" V+ F. g
  37. //             not appear to block all threads!$ ~4 \3 m) x' q
  38. // Returns   : none
    : n: \7 _9 w! x! A: S7 ]
  39. // Parameters:      
    $ Y% V( B4 {3 b: A
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    * G% y9 }: e- K4 x+ X
  41. //////////////////////////////////////////////////////////////////////
    0 [2 Y8 i" Z5 w8 F! ~+ {
  42. void XSleep(int nWaitInMSecs,int nAscll)3 H( B4 J# S: A. D+ Y
  43. {% T3 u3 a& T7 A" H. z
  44.                
    8 \( C. O( v, I& J8 }
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
/ W+ ~0 y7 E# i$ e% \" ~% t
5 A# p4 {7 X& X; m/ e1 P1 k8 b  [
xsleep.h文件代码
2 @0 i% X& c: X3 i7 Q. c! P' O- ^7 V# T# }( x
  1. //Download by http://www.cncml.com
    " u9 ~# G  E6 v1 M
  2. #ifndef _XSLEEP_H_4 M4 D4 n' c' T4 g6 a1 a- B+ K. D
  3. #define _XSLEEP_H_
    : S' z$ l* q' o6 _" K3 {3 g6 F
  4. 8 u6 D& \. c0 P5 C$ e
  5. void XSleep(int nWaitInMSecs, int nAscll);
    ' u! P8 Q& M: S* d/ ^0 r* W

  6. - M5 O# u2 S. |% J) u, k
  7. #endif // _XSLEEP_H_
    5 H/ k' I8 K$ S: s
复制代码

  ?9 s( b8 @- G3 i3 D
+ l8 u2 a( v% h% ?& nmfc中的调用代码如下
$ k7 H' r3 P* A
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

9 @# Q% g7 o! K5 k! Y. L$ F, \1 j/ W9 f. s3 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 13:34 , Processed in 0.066655 second(s), 19 queries .

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