cncml手绘网
标题:
非滞后式延迟执行
[打印本页]
作者:
admin
时间:
2018-6-27 00:03
标题:
非滞后式延迟执行
方法如下
( V5 w7 ~7 w5 ^6 _
建立 xsleep.cpp和xsleep.p文件
, |' v1 a7 F, K
xsleep.cpp文件代码如下
* l, \6 v) L6 i! o% l
//Download by http://www.cncml.com
+ y& Q' ?. H4 H0 M+ O5 k
#include <windows.h>
/ \& _' z& L( v& ^2 ?8 v
#include <stdafx.h>
- W/ m6 Q) x$ z$ }) `. n
: N+ r1 | K, v6 ~7 _+ P3 [' [0 t
// This structure is used internally by the XSleep function
" q2 F7 S& X: `6 O" Z7 }, J
struct XSleep_Structure
2 v+ e v5 c' s( W
{
( s$ \+ \. \: X& I8 ?2 U1 R
int duration;
! d" u1 y! F5 a+ \+ a
HANDLE eventHandle;
$ U+ c4 R3 _! }" e0 Y
};
6 o5 R7 L; z0 T3 ?+ E9 ^
4 x4 U8 Q& K& B% ?3 s0 i L
1 v2 G! J& ^. ^% [* `
//////////////////////////////////////////////////////////////////////
; f1 \5 y2 O) X( k: \; b
// Function : XSleepThread()
% r( L f+ `/ e' O) F
// Purpose : The thread which will sleep for the given duration
6 I# ~+ \, i' V: _. K
// Returns : DWORD WINAPI
; B. j0 K# i: Y; r6 F+ a) i
// Parameters:
1 V: }0 O& [" i' u: ^1 r
// 1. pWaitTime -
; E7 U% L( O9 _
//////////////////////////////////////////////////////////////////////
5 J1 r8 U# ?# [3 q3 ^$ _
DWORD WINAPI XSleepThread(LPVOID pWaitTime)
$ _2 V T9 h$ v+ w
{
+ T! Z( Z/ t6 U/ T% [
XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
, x! s8 u- A9 X
; f% h% N7 u4 W+ O2 I- Q
Sleep(sleep->duration);
6 F0 @3 g$ C- |- l4 g
SetEvent(sleep->eventHandle);
9 [( Q" N0 g9 V/ H" ]! a4 M
- {4 [& L+ v. m
return 0;
) m: h% \/ A4 p' n% I* e# H
}
L( l" d8 Y% D r1 l" s- M
* |, z+ ?2 s" J$ g# |5 I+ {' R x
//////////////////////////////////////////////////////////////////////
7 r/ U% H% K6 Q- F* ]5 f
// Function : XSleep()
; G- x+ M2 Q$ z3 I+ Y
// Purpose : To make the application sleep for the specified time
) c. w& W! \* i3 p ]: R" w1 |
// duration.
: J/ C2 S2 Y" l6 O8 a
// Duration the entire time duration XSleep sleeps, it
- y* p5 j" f: H! s6 J
// keeps processing the message pump, to ensure that all
3 J, D+ ~$ W U9 i0 S, g
// messages are posted and that the calling thread does
2 v) {2 l6 T9 x2 X
// not appear to block all threads!
! S; X% V* W' b# N
// Returns : none
+ P# Z E: _5 Z
// Parameters:
! B8 w/ ^& [) R
// 1. nWaitInMSecs - Duration to sleep specified in miliseconds.
+ K5 @! C6 N. c8 o+ ~' I
//////////////////////////////////////////////////////////////////////
- U9 }7 Q/ {0 M) e. l- T
void XSleep(int nWaitInMSecs,int nAscll)
9 K; g0 d/ ?, d- Q. f
{
& n! `7 p% E+ E( Q
" I; b S/ n. I
<blockquote><span class="Apple-tab-span" style="white-space:pre"> </span>INPUT input[2];
复制代码
: i& R" \$ }1 O' D: h
4 |, v9 J ^* f' C- A) L8 Q
xsleep.h文件代码
( R, X" u% [5 n9 L% }/ _: j
7 {' P& z5 `6 |
//Download by http://www.cncml.com
, |; d! Y1 p6 R* `: ]
#ifndef _XSLEEP_H_
1 K2 E, e6 T) \. e9 k
#define _XSLEEP_H_
& E% l) S: G$ r/ m2 m
, n2 O& a& O8 C+ W0 N' I7 j
void XSleep(int nWaitInMSecs, int nAscll);
- h3 j' \6 d% o% c' r" M
. N# H1 f3 K/ O+ Z* x" B
#endif // _XSLEEP_H_
% g5 }9 r+ ^0 ]5 N# `
复制代码
' C8 @% ]% P8 ?% F' p4 e
: a+ j$ i `& V- Z. }
mfc中的调用代码如下
7 O: u0 ~. _! Y! ]0 b, q
int ascll;
复制代码
XSleep(500,ascll);
复制代码
) S/ L' @( r$ N
, c3 w& U/ r" H9 ?3 I
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2