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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下& f, x2 S- ?. ~- @! O
建立 xsleep.cpp和xsleep.p文件; P/ q: j! T% @6 ~" w6 V
xsleep.cpp文件代码如下
; t7 C1 }- e: _1 k
  1. //Download by http://www.cncml.com
    + b8 N6 R7 z0 t
  2. #include <windows.h>
    8 ^* b: K6 u  V/ M* v. i. o9 @
  3. #include <stdafx.h>$ D3 f' V0 o/ C  P5 g( ?

  4.   E2 r0 d# x1 V/ O
  5. // This structure is used internally by the XSleep function 4 K, ~* d. z* w/ B! x0 t0 }
  6. struct XSleep_Structure
    $ {1 A0 ]0 \& [) ^' {
  7. {, n0 W) g8 e4 m: ~5 n6 \9 K2 a+ {7 E
  8.         int duration;. k7 a$ ?* f; J
  9.         HANDLE eventHandle;9 v% k% Q/ A) {3 C) c0 g) }
  10. };. }/ F4 U. |$ b' C7 X

  11. ( u) |9 M, @4 T7 J6 h) E
  12. 7 Z9 R3 @. H# a3 v6 Z7 L' V; D) _
  13. //////////////////////////////////////////////////////////////////////% n. ^6 X& {9 Y5 C2 S/ N$ `
  14. // Function  : XSleepThread()4 b. x, ~6 u% n2 b  v5 a
  15. // Purpose   : The thread which will sleep for the given duration: |  {- s; \6 ?) E' U2 r. l
  16. // Returns   : DWORD WINAPI
    * W2 b0 u1 w/ c
  17. // Parameters:      
    6 T. a, O, j6 o: @: O( C$ f, q
  18. //  1. pWaitTime -
    - K( f  k4 A9 e5 A
  19. //////////////////////////////////////////////////////////////////////5 m) F8 R8 c/ W6 \2 R8 Y: _/ A
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    ( K) m! d7 D1 k0 _& j: i
  21. {
    % k. v9 ]  m/ ^1 a( H. S: g, ?
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;6 P+ S9 O0 q9 [+ s* L: {( t
  23. & U2 Q4 j9 e' _8 n% j
  24.         Sleep(sleep->duration);0 B; c3 T9 r5 W/ E( y/ J4 L" G2 z4 C
  25.         SetEvent(sleep->eventHandle);
    % k2 y4 k5 Z9 H. q3 ?
  26. + N1 Z0 w; P0 \: l* G
  27.         return 0;2 s7 o& l$ O0 ?. h2 P. l0 r2 l
  28. }8 ~7 G. a2 J& w2 V  D

  29. 1 S8 l: }+ @( V$ J  u4 Y. C: w
  30. //////////////////////////////////////////////////////////////////////) g  P& `/ W5 ]$ ~: ]9 f
  31. // Function  : XSleep()& _, g- C+ R3 Z
  32. // Purpose   : To make the application sleep for the specified time
    7 _/ K, B/ j+ H2 _# |! g# P7 }
  33. //             duration.
    / S, g3 y! w* G. X6 B7 M' `. {
  34. //             Duration the entire time duration XSleep sleeps, it6 ~2 Q3 d2 w8 @/ X/ k$ H
  35. //             keeps processing the message pump, to ensure that all
    / v: u' }3 Z" R  F7 G
  36. //             messages are posted and that the calling thread does$ q6 c' p* s! o3 ]
  37. //             not appear to block all threads!- z* h, f' @) X) w2 \
  38. // Returns   : none
    , n8 j* `; G* K% w, ~* f$ {1 V: n
  39. // Parameters:      
    ( |" ]6 s; I0 O, R, t
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.+ B: ^; l4 n: Y% U" y. j5 w
  41. //////////////////////////////////////////////////////////////////////9 c* M; n1 h( E3 n
  42. void XSleep(int nWaitInMSecs,int nAscll)
    ( o5 v8 ^7 x7 T8 b' j0 ~
  43. {
    3 g, J7 n& L6 |  k% u9 p' O: D
  44.                 ' _# ]$ t2 k) m/ T' t6 r" u0 C
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
# J7 d; ^" `+ T; c& u
1 a2 ^4 o2 m. Z  }. y
xsleep.h文件代码% @4 {! @+ _4 \- f' Z

9 F/ Q: `, r3 y, _6 x! G& B6 ]
  1. //Download by http://www.cncml.com+ @6 U5 j# H2 B. o+ L
  2. #ifndef _XSLEEP_H_
    " M* l7 G. A+ Q4 P- p
  3. #define _XSLEEP_H_- D, @. n& @: Z: B! c

  4. / b8 a( |, Y% h1 s# K
  5. void XSleep(int nWaitInMSecs, int nAscll);6 g, u9 X' o, U; @  ]
  6. % L9 q  p& C/ a' O! l' R
  7. #endif // _XSLEEP_H_
    & F. A: S& }+ C& Q  F
复制代码
! ~; D$ r; M( `, ]. W2 ]
) N% P4 h4 w  u% ]7 D
mfc中的调用代码如下
5 D1 r+ A2 `$ K3 ?; R6 K1 c# E; `
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

2 u1 y0 `8 h  R0 A; E
# J) k6 W# x2 }! W- O( |; ~0 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:57 , Processed in 0.057831 second(s), 19 queries .

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