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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
" z( @. t+ Z) b5 m/ f4 w7 E/ l建立 xsleep.cpp和xsleep.p文件
$ m7 g, h, K; \xsleep.cpp文件代码如下
) n! P! q$ R0 u- k1 ^6 E* d+ X) f
  1. //Download by http://www.cncml.com5 q6 C# J7 B4 k! Q/ w
  2. #include <windows.h>
    2 K* N/ R# ]6 J, t: ~
  3. #include <stdafx.h>
    9 ]# ?7 U& j5 Q6 q7 m5 J8 I. z2 n

  4. " h; j+ A" V! {# z. [  i* ~
  5. // This structure is used internally by the XSleep function 5 h. X- Z+ M0 Z1 b
  6. struct XSleep_Structure  l. k: ~6 z6 M$ {% E* b: K
  7. {
    ! E" u, D  Z# Y' f2 ?3 S
  8.         int duration;) Z/ f8 _& F; Y7 ?& V
  9.         HANDLE eventHandle;7 }4 p7 c$ x! X! a2 }. B) \
  10. };
    * N- E" r; I5 U4 \$ Q/ A' K

  11. 8 O+ L" B; }9 z$ m  e
  12. 3 _' z" f; C$ e3 I( |* o
  13. //////////////////////////////////////////////////////////////////////
    , P, L- w4 ~6 y. F. j
  14. // Function  : XSleepThread()
    ' T5 ]$ G% f2 _, m
  15. // Purpose   : The thread which will sleep for the given duration- K; F2 O# P  M
  16. // Returns   : DWORD WINAPI
    ; E* {2 L9 G3 h7 I
  17. // Parameters:      
    9 w; X/ z$ H/ a& T1 F( G
  18. //  1. pWaitTime -
    7 q9 n$ J* E, n) M8 h7 U5 h
  19. //////////////////////////////////////////////////////////////////////1 G; F; E6 T, P+ Y
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)) }) d; C2 O6 j) R5 W9 g
  21. {
    9 X( ^# m3 W- F! P9 N$ W3 w
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;+ t% W- V% a. w

  23.   X5 X: K" T- a$ J5 f. k
  24.         Sleep(sleep->duration);
    9 C6 L5 W8 P+ C# ~, J. r# g+ J- g
  25.         SetEvent(sleep->eventHandle);
    ' @1 @! |' ^2 j: a. I/ y4 h: }$ p" y
  26. ! M' y, j) B" d6 R9 R# P; G
  27.         return 0;. \( k& K5 I0 ?, h/ `+ M  v8 @. W
  28. }
    , b: T* S/ c( `: r. ?  Y6 Q+ W
  29. : b; {. a' D6 L9 W  @0 _' G
  30. //////////////////////////////////////////////////////////////////////: x6 F0 R7 q1 l/ F  _% I
  31. // Function  : XSleep()
    1 e8 d2 L* V9 o+ V; t2 ?5 ^5 A
  32. // Purpose   : To make the application sleep for the specified time
    4 O. F( U" u1 g0 O) M" y
  33. //             duration.# w/ z0 G. R* e5 h) w# f2 b3 k( t
  34. //             Duration the entire time duration XSleep sleeps, it
    & c9 @$ n! ?: _# F( v
  35. //             keeps processing the message pump, to ensure that all
    " x# Z! p: J  @0 j/ |3 E6 X" M
  36. //             messages are posted and that the calling thread does
    9 S2 L% v# K# P* j2 J
  37. //             not appear to block all threads!' v/ Q4 R  p( I1 w$ H0 m
  38. // Returns   : none9 v3 ]$ c# S+ a& U, w& ?  M; q
  39. // Parameters:       - \4 ^8 ^! r$ e, [
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.  e* y8 J5 Y; E, H: }/ E( d) N% i
  41. //////////////////////////////////////////////////////////////////////9 ^% N4 V" P* V) G
  42. void XSleep(int nWaitInMSecs,int nAscll)
    : W/ w8 O, j: x" n. i/ U/ M" G
  43. {
    * O* _' r; G) F+ j( K* e
  44.                
    9 l% j# |) M" {% j
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码
; }$ I% y% _" X7 X
6 H2 O" T$ }( y+ c8 \" q  [
xsleep.h文件代码
/ G0 ^1 \, r& R8 Z, N
$ b8 j' W3 D% [. m  d9 `
  1. //Download by http://www.cncml.com
    ' T6 w7 f/ x2 U% H9 Y# D0 T6 \' w# L! L
  2. #ifndef _XSLEEP_H_8 @/ P) D3 O6 V0 N; q
  3. #define _XSLEEP_H_% O7 Q% P7 s$ X* S( L2 u/ f

  4. , c, i! K; c+ E* n: E( E. q3 U
  5. void XSleep(int nWaitInMSecs, int nAscll);
    4 }9 K: q* l0 c; p2 U
  6. 8 H  y, k& U2 @: {* ^! `
  7. #endif // _XSLEEP_H_
    2 E* ]; I( ~4 g( M( t
复制代码

( z7 Q8 }  c: V$ H5 P0 t* ?% h+ G7 v$ P0 t( o  m
mfc中的调用代码如下) Y  Q8 t3 r1 ~  n4 d8 a9 G* X
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码
$ R8 M' }9 \2 [2 |2 E

. Z7 n2 p) [& K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:10 , Processed in 0.070052 second(s), 19 queries .

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