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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下& ?( _0 g( U  U4 K8 D
建立 xsleep.cpp和xsleep.p文件
( E% }1 R6 h! J4 Fxsleep.cpp文件代码如下
: F* y0 X4 g- L' _
  1. //Download by http://www.cncml.com! G- Q( Z5 k* N# }9 Q- P
  2. #include <windows.h>0 U  c; X- m" `  N
  3. #include <stdafx.h>
    ! ~# ?3 I5 e( s* v4 W# R- x$ N

  4. ; ]: J5 \& x. c( c1 }" D# t4 h/ g
  5. // This structure is used internally by the XSleep function
    . m3 s% I" p1 r, Q. q7 u! V0 b
  6. struct XSleep_Structure+ g1 R# @/ I* C0 v
  7. {
    - {- \1 k" k* I/ D
  8.         int duration;# k& g- a! p4 j' B- B1 V
  9.         HANDLE eventHandle;
    2 U; l" ?. B& a6 n, j; \
  10. };  Q) s6 f) ?. @6 b  d2 q5 Q5 L

  11. 9 R8 p5 z/ d  w* t8 j

  12. 9 L! S1 b0 k# I- K0 h
  13. //////////////////////////////////////////////////////////////////////
    / W$ W1 O% C* k/ ?
  14. // Function  : XSleepThread()
      B1 B$ c& x4 V# i; O0 [; R& q7 Z
  15. // Purpose   : The thread which will sleep for the given duration
    9 S- O$ o/ N5 a  q3 M7 {8 |7 l  z
  16. // Returns   : DWORD WINAPI) B' v. q' G  @8 ^9 u
  17. // Parameters:       - G: }5 j! `. C! A! _( T
  18. //  1. pWaitTime -1 b' w# [7 H* `8 J1 c1 h, |! M
  19. //////////////////////////////////////////////////////////////////////- q! b/ w! \( c0 [0 V
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)0 T" j9 I8 S4 X4 I
  21. {3 O( K9 g( d+ T5 J1 S% W, R
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    ( S: p& s: D  L/ M3 |1 L- \, W

  23. ' X; c: M9 H0 z- w/ X8 @# D
  24.         Sleep(sleep->duration);
    3 Q( t. S/ o5 v
  25.         SetEvent(sleep->eventHandle);5 u0 l0 I' }! Y: e, m: m% M6 T
  26. # q2 j, I' V% `/ ~
  27.         return 0;+ L8 ~$ D, K# N+ p# a  z
  28. }
    ' r; M' k! @: D8 m! N- X

  29. 0 W3 T" x' x3 [+ g
  30. //////////////////////////////////////////////////////////////////////! z3 E& [! c7 C" {9 A
  31. // Function  : XSleep()
    % l" T* V0 Q7 A# O- L5 U
  32. // Purpose   : To make the application sleep for the specified time6 {( u- ~# \8 m8 D9 }, ^
  33. //             duration.- T+ }: I  g7 ^% T+ i
  34. //             Duration the entire time duration XSleep sleeps, it
      V5 ?/ s" e  t( s$ A
  35. //             keeps processing the message pump, to ensure that all
    , i1 \9 J( k. S+ b8 d: ]4 Q
  36. //             messages are posted and that the calling thread does
    5 l: E7 `1 e  c$ h
  37. //             not appear to block all threads!
    % w8 I. M0 D* A/ w
  38. // Returns   : none# U# Z" t! N1 T7 V. T9 ^* j
  39. // Parameters:      
    2 T7 F& `/ }' V1 |1 k
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.  W- X; ~$ k" w3 W2 c4 c
  41. //////////////////////////////////////////////////////////////////////
    ' ~- H9 Y0 C. m+ Z7 E
  42. void XSleep(int nWaitInMSecs,int nAscll)
    1 r- q4 x7 Y& s% ~- H# f; Q
  43. {# c  I" t4 }( s8 p2 ~9 J& b* g
  44.                 ' _. ^% M% T1 x0 C. C
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
& M& y8 d- G+ |
* u, c  p. b* f+ _2 \: U1 R
xsleep.h文件代码9 `$ m% A# N9 ?6 V; i

4 z; _" G" I+ e+ E6 b, }' J
  1. //Download by http://www.cncml.com
      V& U6 W" R0 C
  2. #ifndef _XSLEEP_H_  g, S3 s8 I! l- m
  3. #define _XSLEEP_H_- j% A8 H9 m3 q- ~0 f+ @. O- L

  4. 8 K+ X+ k* D7 D6 K' N2 K% k$ z
  5. void XSleep(int nWaitInMSecs, int nAscll);
    2 K% Y% l$ I1 P+ x% B  j) e
  6. 8 a' Z1 l5 c. V4 \" W# o
  7. #endif // _XSLEEP_H_' p4 Y) C3 m. m- d, w+ g# u) {' i+ O" ~
复制代码

$ F6 q* U: J4 j4 A; p1 H5 d/ k6 V4 a6 w  F5 i3 s+ l% Y+ x( U5 v
mfc中的调用代码如下3 ^# ^' B1 L4 t1 [" d5 q
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
$ m3 T0 n6 \# d* i& m% A

: G1 T$ h# P* ^! A+ \7 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 21:41 , Processed in 0.115651 second(s), 21 queries .

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