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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-27 00:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法如下
& i$ M" Y6 M  ~建立 xsleep.cpp和xsleep.p文件
% T3 z3 t; b2 H; y) j4 dxsleep.cpp文件代码如下
8 @! G. [: Q  \. Y! I; R7 e
  1. //Download by http://www.cncml.com
    5 y. P$ k; v3 m9 m; e# j) H7 _4 f
  2. #include <windows.h>* K" P+ |, B7 ^' a! I
  3. #include <stdafx.h>! S; d" D) P5 o" I7 W9 B

  4. ; b, g$ ]* p1 o; n" ?; Z3 B
  5. // This structure is used internally by the XSleep function + u4 S7 g5 J- Z+ p
  6. struct XSleep_Structure
    , m! |. j& i) R
  7. {
    3 I+ ^$ D8 q1 n- s# s
  8.         int duration;
    6 A# R/ I" O6 H' p
  9.         HANDLE eventHandle;( Y) G3 x- @, D+ X$ G. }: z/ }- k
  10. };+ X. I4 o  r2 Y7 s
  11. & N$ m+ P* q! F2 N5 @6 S* ~

  12. 3 F! u0 P4 A# {' D7 v6 J, k& s
  13. //////////////////////////////////////////////////////////////////////% v$ `- ^  B8 i2 o, U) \% m
  14. // Function  : XSleepThread()- \: z6 b  p% l/ ?2 v9 S
  15. // Purpose   : The thread which will sleep for the given duration
    ; C2 G0 w4 Y. Z2 s! g
  16. // Returns   : DWORD WINAPI
    4 N% L: q6 N' G0 s7 v
  17. // Parameters:       7 X$ `1 s; P0 u
  18. //  1. pWaitTime -
    ! \8 r( i9 ?# a2 t  b' l8 v
  19. //////////////////////////////////////////////////////////////////////) f; b7 Y* A! W' i( v' S
  20. DWORD WINAPI XSleepThread(LPVOID pWaitTime)$ T  ^1 t5 s2 l; T8 q8 K9 i
  21. {9 [$ o. Q  L  S3 R2 _1 B2 T
  22.         XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
      s8 k8 ]3 e0 y' \- z) ?
  23. & x6 f* s: d8 i9 Y; Z
  24.         Sleep(sleep->duration);+ s- _( Q' X& S  I0 F- O
  25.         SetEvent(sleep->eventHandle);
    6 }! R* ^7 q( O( X) c

  26. 9 j# p1 H/ x9 ~! u2 ~6 o! t. b
  27.         return 0;" A1 Q+ Z1 q& I* R$ B* I
  28. }
    0 K3 ?* i$ o0 o7 M& T( g+ P% h

  29.   `' H7 e" G7 o# j
  30. //////////////////////////////////////////////////////////////////////
    1 \: D3 \9 h" {7 E, B+ I
  31. // Function  : XSleep(); S& Q* n+ t" U4 e
  32. // Purpose   : To make the application sleep for the specified time) k8 i! ~+ m7 F0 }+ V% ~( C
  33. //             duration.
    ' w, y/ i+ ^0 @  F2 {7 @9 w7 n
  34. //             Duration the entire time duration XSleep sleeps, it
    / J- d* x( t5 y/ P
  35. //             keeps processing the message pump, to ensure that all5 y: ^3 U, n4 [2 l/ a  h
  36. //             messages are posted and that the calling thread does7 R: c0 h# d) Y0 b( e  v
  37. //             not appear to block all threads!
    " a7 l! D1 D; a0 q7 c7 e* i
  38. // Returns   : none: z  {' w7 e" ]5 l9 x- E! d3 f+ l
  39. // Parameters:      
    6 v0 l$ @& K+ S# L! g( W! o
  40. //  1. nWaitInMSecs - Duration to sleep specified in miliseconds.
    6 f6 v7 }8 C, I1 ?: E9 u
  41. //////////////////////////////////////////////////////////////////////3 a8 I9 I, j+ w
  42. void XSleep(int nWaitInMSecs,int nAscll)
    5 z6 c6 G+ A# H4 v% q
  43. {, f: Z8 l) E9 O) {6 E/ Z! I
  44.                 / @+ j1 f! K5 t" S1 x1 Q+ B8 F3 T
  45. <blockquote><span class="Apple-tab-span" style="white-space:pre">        </span>INPUT input[2];
复制代码

5 g# ^2 z& T1 L. p& ]1 i
& P0 J% {' ]: x9 V. Mxsleep.h文件代码6 s! q% G9 |+ {# W% T% V0 ~+ l! a, I

2 a' S4 v" o- G/ l' K; x& q2 g# H
  1. //Download by http://www.cncml.com
    ) x3 D- i, l8 f: U' P( I
  2. #ifndef _XSLEEP_H_; j! P7 W$ S: {7 H
  3. #define _XSLEEP_H_
    * a! m! p. g2 e1 H: j2 M

  4. ) |+ T# l5 D$ n0 q$ F. m; G
  5. void XSleep(int nWaitInMSecs, int nAscll);
    # |7 T/ Y# n! y

  6. 6 e3 Z$ `+ d. O% |& a
  7. #endif // _XSLEEP_H_
    ' X  K: j. B/ T+ o
复制代码

3 ]6 \. u# y: O5 S" E3 l
; v! G% E- Y, Q% X1 umfc中的调用代码如下
8 c3 K0 E8 j# n1 G
  1. int ascll;
复制代码
  1. XSleep(500,ascll);
复制代码

$ \2 A9 P! x8 w( F& y. |" |+ W, t) R. l6 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 03:14 , Processed in 0.065029 second(s), 19 queries .

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