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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下, Y8 Y0 _3 {# C- D- m. A  ~! D
建立 xsleep.cpp和xsleep.p文件
! u" y* d7 E+ o' L; I2 vxsleep.cpp文件代码如下
3 a6 L' X" w1 G* D+ h
  1. //Download by http://www.cncml.com% T* P# q7 @! g! x5 H: q) _, P
  2. #include <windows.h>
    * u* N  R: A& u" e# u) k7 U
  3. #include <stdafx.h>9 a9 ?8 K; w0 h# Y
  4. : E2 }: Z8 h+ h# O9 {# V3 e
  5. // This structure is used internally by the XSleep function
    8 }2 ~  ]( N" c6 s& {4 n
  6. struct XSleep_Structure2 ^, J- _; ]& d1 }$ g2 E3 X
  7. {
    0 r8 Y' O* h$ j. ?$ I; @
  8.         int duration;0 Z% u. j% }9 s" f3 V, r6 i
  9.         HANDLE eventHandle;
    $ S& c& q% V7 g* X& a5 l4 b
  10. };
    , I2 Z/ J4 B; Y) e2 l2 N
  11. " T5 [& _0 O" q' n) T2 L
  12. * H& O3 _3 M7 E1 u
  13. //////////////////////////////////////////////////////////////////////
    7 v2 R7 r+ d* K" F% `% U
  14. // Function  : XSleepThread()8 I1 {& Y: l( F( @4 x
  15. // Purpose   : The thread which will sleep for the given duration8 T) U8 F( o! T3 C
  16. // Returns   : DWORD WINAPI
    4 b: l3 O8 n1 R. b1 h# a
  17. // Parameters:       " Z9 k0 ]# n- K5 F4 p0 b; J
  18. //  1. pWaitTime -
    8 ]' R8 D/ S: M" F. N- r
  19. //////////////////////////////////////////////////////////////////////
    / G5 ~# s, ?9 _2 s$ E% n+ d9 M
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    : j5 S  M  T3 V( u) Q, r, n8 C8 }: U
  21. {# A- z# D8 ^9 q  A1 H+ q5 \7 |
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    * D5 ]" v1 I: l# }9 n
  23. / L: n. u1 N( ?. F4 J- a
  24.         Sleep(sleep->duration);: d% i$ g+ T* _, v
  25.         SetEvent(sleep->eventHandle);0 D9 p8 H1 \4 O6 j  y$ j7 H

  26. ) H5 v! j  f4 d
  27.         return 0;4 t( @% p  d3 c  T6 v" q
  28. }
    ) ^8 f% [* }/ o
  29. * }# o$ A  ~# w: ?3 j
  30. //////////////////////////////////////////////////////////////////////3 @- F# X, G( u  h
  31. // Function  : XSleep()/ P9 ^2 y( ?2 Z( |" m( E/ `
  32. // Purpose   : To make the application sleep for the specified time8 B2 O- X* L) L, O
  33. //             duration.
    ) D+ ~/ Y# O- D$ a# ^
  34. //             Duration the entire time duration XSleep sleeps, it
    0 X! e3 G. c8 u+ L
  35. //             keeps processing the message pump, to ensure that all
    % @! N' i" o; ~# y  Q5 \/ b, H
  36. //             messages are posted and that the calling thread does
    + W3 Y8 e- T- T3 y5 q  o) r2 F' q
  37. //             not appear to block all threads!4 s# T) T  t/ j: f
  38. // Returns   : none( R8 W8 O7 [8 {6 N! i# k
  39. // Parameters:      
    ) w4 e4 w: \: c2 g3 e) ]
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.' t7 S8 P) G, {& ]0 _7 W. C
  41. //////////////////////////////////////////////////////////////////////
    0 I# X5 c% l6 e  f
  42. void XSleep(int nWaitInMSecs,int nAscll)
    , i# R# G( K0 i; R' S& B. ~) w
  43. {6 X4 c: {% J1 d$ w' P
  44.                 9 W2 b4 u, M6 }" Z
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
; @/ r: a. {1 U6 T# k
5 s+ E% c; x# k3 f: m; \$ h
xsleep.h文件代码" R$ P  I( ^7 c' w) N( g# U! M# z

% m+ R  ?  `1 Y3 x! n$ t
  1. //Download by http://www.cncml.com, c1 v5 D0 u0 w  c
  2. #ifndef _XSLEEP_H_
    " A" F8 L1 [/ E( i( w" G
  3. #define _XSLEEP_H_
    ; ^/ y" C3 w1 n' A! P2 f) R
  4. 1 L! |1 z) s2 {3 P
  5. void XSleep(int nWaitInMSecs, int nAscll);2 g: n7 G$ x6 m
  6. % x7 W( \2 ?' X# y2 ?8 h
  7. #endif // _XSLEEP_H_0 O: _* Z( ^5 l; [
复制代码

' f4 W; w2 k$ v$ h
/ l! M3 |- j  R" S  J3 b; Gmfc中的调用代码如下/ e. ~2 s) o' \% x; I; h# K
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
; O! t5 u9 V: G2 A2 b% r! S

* e2 C% }) p. Y9 X. ?) x" |2 x" ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 14:08 , Processed in 0.055945 second(s), 20 queries .

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