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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
方法如下
$ f% T: ]- z; v. c* F4 ?+ d建立 xsleep.cpp和xsleep.p文件
8 V  V( ~  i8 K9 Kxsleep.cpp文件代码如下7 A* {# u5 u9 R, v: K3 G8 m
  1. //Download by http://www.cncml.com
    & C; e2 r: q0 p  O- {
  2. #include <windows.h>9 \* o9 j& n$ t
  3. #include <stdafx.h>& D( ~: P5 `( C, C6 b' q7 W2 S6 z4 }
  4. + ~  U9 H& p7 A8 W$ y% I
  5. // This structure is used internally by the XSleep function
    / c) {2 y" m' o) C+ D# D4 S2 @. d- F
  6. struct XSleep_Structure
    # i* a- j9 Y  w6 M$ w/ F
  7. {
    5 r9 D3 f6 E! H, f; ]! p9 P
  8.         int duration;
    3 n% M  J" g; }+ E2 L
  9.         HANDLE eventHandle;* q# j5 {3 R8 b! V; _
  10. };0 e$ `( l  v. x& `8 j8 n

  11. - ~: [) t( O; P0 I

  12. 6 m+ X7 O9 V" [5 }: Z
  13. //////////////////////////////////////////////////////////////////////
    ! Q( ]0 ~" p) a& L
  14. // Function  : XSleepThread()
    . m8 y# G! @3 K- x, I1 e! D
  15. // Purpose   : The thread which will sleep for the given duration$ X4 ?6 |; x' z! ]1 P, E6 n8 {
  16. // Returns   : DWORD WINAPI
    # Y& h) |& ^& M% z+ x
  17. // Parameters:       4 m$ q2 o1 d' a" n
  18. //  1. pWaitTime -3 c# ~/ j9 F# H% T
  19. //////////////////////////////////////////////////////////////////////3 {5 ~5 z0 S; ~  p+ A
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)" B: t3 \6 Z7 r' E! M
  21. {) @; N. N9 ^6 q' `
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;) q, f: m% _" H1 S. W) |. \7 H6 _7 \
  23. & }: f0 A' ?: y# Q, f9 A# ~/ X) @
  24.         Sleep(sleep->duration);5 M$ {7 P" C2 f
  25.         SetEvent(sleep->eventHandle);
    ! c1 g0 S1 t# _' M

  26.   K; d0 V! ~) }& s% V& D3 k$ x/ t
  27.         return 0;( Z. i1 K& p* F% X
  28. }
    6 w9 I/ H1 z* W

  29. ' I. v" U2 g/ J
  30. //////////////////////////////////////////////////////////////////////) }. k6 u  l$ i& _2 p: W0 w2 b
  31. // Function  : XSleep()
    6 r1 n! o  ^- p' c0 c. {
  32. // Purpose   : To make the application sleep for the specified time
    1 [/ k. B9 Q/ w7 z+ _2 O
  33. //             duration.# k* m! ~% m; m2 w; A
  34. //             Duration the entire time duration XSleep sleeps, it
    - d& p# d5 g2 q6 A0 h# V8 ?
  35. //             keeps processing the message pump, to ensure that all/ D. E- @: b; v' r* r* Q/ _$ ?6 y
  36. //             messages are posted and that the calling thread does
    4 g3 i' p; }3 R# h; N( [
  37. //             not appear to block all threads!
    / U, p& g$ {) A% \3 j8 x
  38. // Returns   : none' u" ^' R5 Y  h+ a9 P- ?; d
  39. // Parameters:      
    9 Q9 I& I; S$ b+ J; ^2 k, [
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.7 U; r, ~4 s7 U/ v/ C2 e5 t
  41. //////////////////////////////////////////////////////////////////////
    $ e: x% E) n5 E: f% j
  42. void XSleep(int nWaitInMSecs,int nAscll)
    5 M" W" b6 w8 E8 j! I
  43. {
    0 N2 `& S4 Y7 n
  44.                
    & I+ O" d/ Q, v) b7 u8 y7 o2 d
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
& s, c1 D2 v* Y9 u
* m8 o  H8 ^. N! O/ g4 ?
xsleep.h文件代码
3 s0 E! {( V+ J  ~
5 a' O4 O+ r3 w( i$ Z, _
  1. //Download by http://www.cncml.com1 N+ x( k' G0 ?4 n
  2. #ifndef _XSLEEP_H_* n2 @9 W  m% a$ e' A+ M$ ^
  3. #define _XSLEEP_H_
    % i" ~0 \+ `8 q

  4. . }, l9 ^0 G1 R) d- P  K& R! E3 }
  5. void XSleep(int nWaitInMSecs, int nAscll);( U$ ?. ~6 N" c5 B8 G

  6. 1 c3 p. @, k0 m) ^6 @- e( N
  7. #endif // _XSLEEP_H_
    7 S/ O  H3 u* v7 c  B
复制代码

0 r& b$ ^9 \9 W3 b1 ?* x! c9 U7 \% w: ~
+ P# H) x5 _- ]mfc中的调用代码如下
+ ~* F0 _0 o  j  k, k8 m2 `: _
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

0 K6 S- [1 L7 r* C2 N2 q6 M- M/ m: M2 x: b# ]  s6 O, n0 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 15:30 , Processed in 0.070409 second(s), 20 queries .

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