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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
方法如下
) O6 ?: I8 y  e. J8 w- C; D7 h建立 xsleep.cpp和xsleep.p文件
* Q- _/ m0 B* e* u5 Y& axsleep.cpp文件代码如下
9 I( S. ~1 g3 B/ B5 |6 @2 [' }
  1. //Download by http://www.cncml.com# J- G4 p. n. S1 \- m
  2. #include <windows.h>0 V# b& m' W2 t- m1 ]8 o. @& I- p
  3. #include <stdafx.h>
    - [5 s) l! \- n9 w1 V
  4. ! v* [: t0 c( h( i* X. J9 U! |
  5. // This structure is used internally by the XSleep function
    / E; Y; x& e- [+ J+ A  n
  6. struct XSleep_Structure
    3 ^* V+ P2 p4 E. d- y. k( g
  7. {% l  D2 }% P$ z
  8.         int duration;& G* B7 o0 n% J! r: C  V
  9.         HANDLE eventHandle;3 f/ d8 b# s0 b  d
  10. };4 g2 _) U+ y( u, D0 E

  11. + |2 r' H& ?9 `; J+ V: Y

  12. 2 m7 W; s; k  ~. T
  13. //////////////////////////////////////////////////////////////////////
    1 b0 v! i5 U3 V' K  I! m3 A' R3 @
  14. // Function  : XSleepThread()
    9 U3 c' ~5 y, {# ~* }. `
  15. // Purpose   : The thread which will sleep for the given duration
    6 d* H' `4 e7 i* s
  16. // Returns   : DWORD WINAPI6 c1 g  p0 q5 i, j8 k% }9 _& x
  17. // Parameters:       ( U; o2 X+ L  k0 ~
  18. //  1. pWaitTime -0 D/ z( s% x) N
  19. //////////////////////////////////////////////////////////////////////
    & r. S0 l% R( k' y- j
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    ' T. Y4 M% K" i, J. j! M4 Z- i# {& G
  21. {
    + B8 n' x! E$ Z8 h4 u: z4 K* D
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    ( E* i+ ]$ x& S4 F" N
  23. # `% g+ t  a% Y7 `
  24.         Sleep(sleep->duration);; m0 L' [) m% e$ L
  25.         SetEvent(sleep->eventHandle);
    3 w: W/ a0 }% C

  26. # Z* X9 A( G+ x6 A; C+ u
  27.         return 0;3 C+ d5 |# a. v5 b
  28. }& B8 V$ d- @$ M. d0 g

  29. : {6 }4 i; z5 c7 `' N" b2 r7 ^
  30. //////////////////////////////////////////////////////////////////////
    + |) N: O7 `, L* u! L  F& l
  31. // Function  : XSleep()
    + ?3 ?; H& G" b+ W5 S" J" y6 `& N
  32. // Purpose   : To make the application sleep for the specified time% U' J+ L+ _  z5 t7 A5 s* m5 Q
  33. //             duration.
    : W0 V& N& o  p
  34. //             Duration the entire time duration XSleep sleeps, it
    + I. c/ K& h- k$ L6 f
  35. //             keeps processing the message pump, to ensure that all3 l# Q# u" T5 u* t7 @& {& g6 U
  36. //             messages are posted and that the calling thread does' C4 V4 M0 g+ v; T
  37. //             not appear to block all threads!" @/ r3 c6 V; G" K4 r8 K, e* u
  38. // Returns   : none( w9 |  N8 d  t  b  r# V4 ?* M0 W" M
  39. // Parameters:       : p6 m# h1 T7 N( ~6 \
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    8 s9 U! C, j) ]! `, f! _6 I5 ?
  41. //////////////////////////////////////////////////////////////////////
    & O) B1 _1 w: x7 P  e
  42. void XSleep(int nWaitInMSecs,int nAscll)+ p* C/ X; @/ V# p
  43. {0 j* Q2 h1 N: ^2 \" j
  44.                
    % b3 z$ B4 Y% z9 O2 q
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
! H, [# }+ C7 ?  |# u% M5 q9 l
$ I' _- Y; }  a6 t
xsleep.h文件代码
! [" o  j3 e) b3 Y/ j3 _5 n& j; `8 z  C  Q" U
  1. //Download by http://www.cncml.com
    + c# x& e* E& \% \
  2. #ifndef _XSLEEP_H_# E; h, |# j2 i) O' ?9 y2 p
  3. #define _XSLEEP_H_
    2 A. h9 s1 p; t2 s
  4. & g6 Q: j1 j, b# E' G( `' v* k
  5. void XSleep(int nWaitInMSecs, int nAscll);5 K) ?$ l; @2 J  v! e7 c* I5 h  _. C

  6. ( C  L1 W- o8 Q; G  H0 G  ?* d8 d
  7. #endif // _XSLEEP_H_- \! z* A! z* |7 D. R6 D0 ^
复制代码

( B8 f, X5 D( X+ G6 L- C9 h" i$ L8 h: @6 d/ I; o
mfc中的调用代码如下8 w6 T; I' m9 e+ `8 {3 V
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
3 ^2 L8 }3 t7 N+ \! |
; j8 r2 d, r) ^2 f8 i4 C& G3 ]- k5 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:58 , Processed in 0.050133 second(s), 21 queries .

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