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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
7 D$ W& m) _& C% T( U2 ^; Z. ]6 [建立 xsleep.cpp和xsleep.p文件; P, y3 [' s) V5 q5 e
xsleep.cpp文件代码如下& Y8 A" F1 v: y! c9 C
  1. //Download by http://www.cncml.com
    * V) X6 G$ U1 w! F1 U
  2. #include <windows.h>
    $ [- r; b$ L7 p+ Y' [8 }% V, W
  3. #include <stdafx.h>0 A. u5 z' Y2 ]2 T' Q

  4. 8 e: R9 E# b& [1 a
  5. // This structure is used internally by the XSleep function
    6 q; d0 J; w" i/ D2 I+ N' j& F
  6. struct XSleep_Structure
    . m6 g9 O, C& o( [: L
  7. {
    " A! D: E8 ~3 {$ c; v2 m
  8.         int duration;8 Q" {1 M4 S" {* @
  9.         HANDLE eventHandle;
    . G) `( x+ k: X6 D' S& A' W
  10. };$ d9 \2 h5 G! q. S% K( |, F! x

  11. , s! j  l8 \  ]0 [0 `* T5 b$ ]0 p

  12. - k5 _0 M2 v7 T- M
  13. //////////////////////////////////////////////////////////////////////
    3 F# e9 A1 n& E$ z% X2 T
  14. // Function  : XSleepThread()
    - v" t' ]. M$ |
  15. // Purpose   : The thread which will sleep for the given duration  ]/ `7 S1 C& z/ a5 `
  16. // Returns   : DWORD WINAPI  ~7 t& X: a- y4 a. z7 E
  17. // Parameters:      
    & J: m) ?0 ]% \5 b, g
  18. //  1. pWaitTime -
    - F% h9 Z4 ?5 I/ K) Z1 K
  19. //////////////////////////////////////////////////////////////////////. |+ g" c/ O0 C' E% {# t. H
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)
    / e/ j, D3 ]) a
  21. {7 J" k7 k, u+ S1 `. c3 l
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;$ y: r1 T) K) ?! B, K7 ?4 }
  23. 4 v2 C8 a% u; c3 |+ ?7 v# [
  24.         Sleep(sleep->duration);* X: Q  ~; k2 L$ X
  25.         SetEvent(sleep->eventHandle);
    0 e0 k3 W$ d% H" {

  26. 2 j+ |; a% S% l2 j1 p6 x
  27.         return 0;
    ) j, Z0 i& A' k
  28. }
    1 g: M* \; [9 `4 _5 w  M+ \4 q- E

  29. 3 N7 _, ^* h- }. m1 r
  30. //////////////////////////////////////////////////////////////////////
    # K, p; y2 I$ J: \$ [' W% g
  31. // Function  : XSleep()
    9 e( ?$ E( u; z% w0 h
  32. // Purpose   : To make the application sleep for the specified time
    9 Z3 b+ e- ~/ _: X2 s$ s) p
  33. //             duration.* E% d* B0 u0 @$ o5 J: e
  34. //             Duration the entire time duration XSleep sleeps, it& H. V, u2 D- t* L( `
  35. //             keeps processing the message pump, to ensure that all: b* s! ?5 c, X% G5 K- R+ u. D
  36. //             messages are posted and that the calling thread does5 ]- }" Q  o6 F6 @
  37. //             not appear to block all threads!' u! S, {9 T7 v; \
  38. // Returns   : none
    + S! F" e( n5 _0 j5 D, |
  39. // Parameters:      
    . X( A, D# W- I2 j, Z9 J! {4 K" |
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds." [, }# [& j6 I* {' ]
  41. //////////////////////////////////////////////////////////////////////; x/ l. p- l. C8 l& W7 ~$ o
  42. void XSleep(int nWaitInMSecs,int nAscll): g5 O; I+ B9 n" Y! v
  43. {  M5 a# F% h6 o  ?' v2 A, u+ C
  44.                
    * C, u8 L) m6 v  ]8 S& z- s
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

8 R& a& h3 P4 p
8 P+ |7 w; @6 r# i0 D, @3 txsleep.h文件代码3 |8 {" l2 F: D; @+ c1 f
4 ?' B, N2 A. T% G! N3 y
  1. //Download by http://www.cncml.com+ h4 e; t- A8 R( c" l! r
  2. #ifndef _XSLEEP_H_
    $ S# f3 v9 @3 s: t) N
  3. #define _XSLEEP_H_
    % B+ R+ k" V; k; _' v

  4. 8 U2 m/ z* K* }2 ?) \# H$ I7 c
  5. void XSleep(int nWaitInMSecs, int nAscll);. X: ~$ L9 V5 }/ ?9 l, z- ]6 x

  6. 6 I( A* Q, }0 {4 ^, d
  7. #endif // _XSLEEP_H_  k1 I3 |# V3 V, R; u5 W
复制代码
7 `3 U' F# I! X% @4 V# g
# @  {0 S; \( ~/ j
mfc中的调用代码如下
8 H' [" V+ `1 U) D
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

* c- p# ]9 R/ u0 x/ E+ k: m" d3 I1 e# `/ H; e9 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:58 , Processed in 0.045044 second(s), 19 queries .

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