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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下5 @2 z( z( D' r- d7 }$ D. X
建立 xsleep.cpp和xsleep.p文件
% ~( L& G6 z$ L9 A. ]xsleep.cpp文件代码如下
7 b; |( f" s7 f8 K; S
  1. //Download by http://www.cncml.com
    + b7 d  g1 g/ P9 B& u: v3 [+ E
  2. #include <windows.h>
    ) ^' c! v4 s3 |" J) O
  3. #include <stdafx.h>3 S* O, G# c& [4 {2 R( N

  4. 0 A! N! v4 L, N0 B0 C& i8 S
  5. // This structure is used internally by the XSleep function   g1 \, ]  x: Z. A, [
  6. struct XSleep_Structure4 F# E6 U# D8 w( D4 h3 K0 M
  7. {
    ! |1 v0 z4 I3 r2 s. R6 `
  8.         int duration;
    ' X6 D2 X, y- G' Q/ z6 {! `
  9.         HANDLE eventHandle;
    9 Y: f3 X+ U9 a' K
  10. };* S0 i( G2 d$ U1 ?
  11. 6 U. ~% W; ]& e/ e' H
  12. 5 `( h$ u* C6 |6 G8 @$ G* R8 ^
  13. //////////////////////////////////////////////////////////////////////- ?6 b4 p( K; C6 h# [: t% n0 q6 \
  14. // Function  : XSleepThread()6 w( L- w7 T' p3 Z. T+ e
  15. // Purpose   : The thread which will sleep for the given duration1 g4 k/ d0 B8 ]  T% u
  16. // Returns   : DWORD WINAPI* B: O/ }: C! D& K* H3 G
  17. // Parameters:       4 v2 p* p9 B. V6 @. C5 x% a+ }
  18. //  1. pWaitTime -6 k# N9 `' D; D( x, y  Q
  19. //////////////////////////////////////////////////////////////////////
    - [/ W# |$ o" ~% n7 X' s
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)$ `; W& q/ I4 k7 W) s( Q! {9 i
  21. {
    ) g" [& [0 A; V
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    9 a5 n/ g0 Y, }9 t

  23. ) s7 A) @) i, A; w' I, b/ Q, y/ ]
  24.         Sleep(sleep->duration);* ]" c  b- O3 ~
  25.         SetEvent(sleep->eventHandle);4 X2 r7 |, j+ H* w& h1 j

  26. $ i% F0 j4 S1 b% K( X6 k
  27.         return 0;+ m/ _1 \0 e5 R& P4 Z' [* _4 ~
  28. }
    4 E. c; I5 w, y- P; Y  _; K- u6 t

  29. & B  _' f" Q+ {! n
  30. //////////////////////////////////////////////////////////////////////0 D4 S8 c/ u4 S; C: c
  31. // Function  : XSleep()
    : X2 W% ]$ u5 N) K0 X& L5 d
  32. // Purpose   : To make the application sleep for the specified time* _& @; s8 h0 m# P4 N5 z" Z9 N
  33. //             duration.
    # F+ @+ g- e) ?8 e7 M
  34. //             Duration the entire time duration XSleep sleeps, it
    " P2 k" C) s. P7 }* V! o4 [
  35. //             keeps processing the message pump, to ensure that all
    - n* k! d; z6 t6 Q  H& e# m7 [
  36. //             messages are posted and that the calling thread does$ I$ k  g5 S4 w& A
  37. //             not appear to block all threads!
    . ^* `7 j8 ]; U. ~
  38. // Returns   : none) L8 X# x$ [' P9 h# Z! n8 q" _9 M
  39. // Parameters:       3 t6 |( q- C( j# g
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.* R7 W- a, \5 X
  41. //////////////////////////////////////////////////////////////////////
    ; ?6 x/ R9 p; z7 O! s
  42. void XSleep(int nWaitInMSecs,int nAscll)
    * j) K7 G' I% A' O4 K, \% a* C
  43. {1 b, w- A2 c4 c( R  p
  44.                
    $ E, j/ S4 e1 y5 N3 R
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
& n0 J7 c4 i. v; z
, E0 \" N- T3 k
xsleep.h文件代码
, t! {6 z* |$ F" O0 F& Y+ ~! D  B) P* Q: ]8 B
  1. //Download by http://www.cncml.com2 @6 K1 z4 k) D( }" C8 H1 z
  2. #ifndef _XSLEEP_H_/ b# H; z- N, p, R5 P! f7 e% F1 {
  3. #define _XSLEEP_H_
    , H8 V; R/ D) U
  4. 5 j$ @! g) G  l) k* B4 @3 _$ B% E: p
  5. void XSleep(int nWaitInMSecs, int nAscll);
    4 W0 ?- v" @! k8 y) l1 Z
  6.   t  V! }! J+ \% l; o* Y7 M
  7. #endif // _XSLEEP_H_+ {2 X( X% h- C8 O  J& [9 O% l
复制代码
/ Y! L4 O; ~3 k
+ d( |4 b% e0 |- Y5 F
mfc中的调用代码如下8 P( K( S1 G4 K4 B% E  V! F0 `4 J
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

5 C0 E: r& B  n! H! s5 {, n& M  W* V6 l: q; |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 21:45 , Processed in 0.050673 second(s), 19 queries .

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