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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
' L0 B4 S& B$ o! ]- S( F8 ^建立 xsleep.cpp和xsleep.p文件
- Y9 `% R$ U' _3 p/ v1 r& Nxsleep.cpp文件代码如下
6 O* S& V/ l2 }. k5 `
  1. //Download by http://www.cncml.com, q4 G( K, Q8 _- ~4 w
  2. #include <windows.h>
    + b$ O! S& u$ l+ ^$ e# q
  3. #include <stdafx.h>
    1 e, k" M+ N. ]5 X, K

  4. & X2 X- p( @0 f
  5. // This structure is used internally by the XSleep function : `6 v# W9 t* ]- w' a2 e$ _" [
  6. struct XSleep_Structure. \* v$ y' D) r1 l- [
  7. {
    6 R- v; W" u: B4 g8 l
  8.         int duration;
    " E4 e6 Q8 a! M4 ~$ u8 G0 \
  9.         HANDLE eventHandle;
    * |- \3 ^8 ?* Q2 M' h. D; z
  10. };& C* O* R3 |8 ^$ y# C3 R

  11. $ _) E0 v3 c# ]8 f+ ]! {
  12. # r& k- z6 s) [1 I4 b, ^( ?; X7 h
  13. //////////////////////////////////////////////////////////////////////
    1 G0 b! i7 W* `1 m7 n& Y
  14. // Function  : XSleepThread()% g7 E, e# v- ]$ |
  15. // Purpose   : The thread which will sleep for the given duration( A- g4 I: F- j+ T% Q
  16. // Returns   : DWORD WINAPI
    9 R" _# K7 }  d
  17. // Parameters:       7 J( `- p; A% j6 c" K! M
  18. //  1. pWaitTime -
    1 Y3 |* H0 [9 A+ k; c: n0 Z
  19. //////////////////////////////////////////////////////////////////////  s' s) T# P* i) a  R
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    7 }! s. s( q! y- t; O4 Q
  21. {
    0 j* @; o2 E7 u8 J4 g5 C* G
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
    $ N- H6 z2 k. F5 h9 w9 g; b3 ]

  23. . P' _: y' Y$ X, e) z7 u
  24.         Sleep(sleep->duration);
    6 q+ N% s2 c8 V1 s" U, B
  25.         SetEvent(sleep->eventHandle);- X* b- [! f, M; U- b' j
  26. $ j# d6 N/ K2 z4 j6 |/ S
  27.         return 0;
    1 A$ U, K$ `3 D" J
  28. }" N( R5 T$ G5 Q, l- g7 o

  29. * }# C2 ^+ h3 |- ?
  30. //////////////////////////////////////////////////////////////////////1 y& P/ X& c6 l7 w6 a( G8 N) g* `
  31. // Function  : XSleep(), S% N# ?2 u0 C1 X) X
  32. // Purpose   : To make the application sleep for the specified time
    + d* \  J9 h2 w" s4 P
  33. //             duration.# k0 ]# |. W$ b3 a5 h! |
  34. //             Duration the entire time duration XSleep sleeps, it+ u) n& Y( V4 a! \% ^
  35. //             keeps processing the message pump, to ensure that all; i0 S7 v4 [. l9 I" F4 e3 H3 ?
  36. //             messages are posted and that the calling thread does$ b6 t2 X/ G* z* ?- ]2 h1 K
  37. //             not appear to block all threads!
    ' N$ I4 V) {3 p# k0 ^3 k% m6 r  G
  38. // Returns   : none
    $ W. |% H. X; P' C
  39. // Parameters:      
    / D7 ~# t) g" V
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    9 e( X/ w4 F1 B1 o7 m/ f
  41. //////////////////////////////////////////////////////////////////////- K3 b6 f' c; \  z: k" L; i
  42. void XSleep(int nWaitInMSecs,int nAscll)
    : }( Y% R( o- P
  43. {8 `( g8 z6 h) d! T2 O
  44.                
    ! x2 W' {- @( [
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

& l, H3 L; e( S! I5 R( v. [. N3 r$ f" ?$ c' [. P3 w' H0 |
xsleep.h文件代码
- o( X' ~6 T) \9 ~" G* X4 W1 s" |
6 u6 d4 n( c8 H1 M# y/ r1 j
  1. //Download by http://www.cncml.com! O8 _& f3 B# v
  2. #ifndef _XSLEEP_H_
    ) G( A: C1 M- p( h/ c" A
  3. #define _XSLEEP_H_
    5 Y. M0 S  S1 _
  4. 6 y( h, Z4 B$ K- G
  5. void XSleep(int nWaitInMSecs, int nAscll);
    6 O2 U$ L$ k) I/ S: i& @2 _
  6. 6 p, ?4 ]+ ^, p$ N/ r/ N$ C+ a
  7. #endif // _XSLEEP_H_, E8 A! g; R, d9 i- {- f9 T
复制代码

- J' h( s6 z* n8 V1 }
. K2 i" U) u0 N' b3 m% mmfc中的调用代码如下
) _& N$ y- I( r# U4 T+ C4 N; h1 c
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

" N5 j, C4 b" M4 E. c0 z
5 r- a+ m& p9 U. w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:29 , Processed in 0.103291 second(s), 19 queries .

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