cncml手绘网
标题:
非滞后式延迟执行
[打印本页]
作者:
admin
时间:
2018-6-27 00:03
标题:
非滞后式延迟执行
方法如下
- M5 |- {. M8 B' l% }; V# o7 T5 d
建立 xsleep.cpp和xsleep.p文件
& i8 j2 c5 }& W9 A2 B- s4 Q
xsleep.cpp文件代码如下
4 k- ^5 t d0 B7 k
//Download by http://www.cncml.com
( W. u. V) W2 R7 G/ p) I0 \
#include <windows.h>
+ R; M# l* l3 d9 s
#include <stdafx.h>
. |4 J U1 a% E2 D6 W9 o) Q
3 I$ m; l- W( N' s2 D- Q
// This structure is used internally by the XSleep function
9 R) {# U. m' h, J" b
struct XSleep_Structure
4 x1 w3 _2 e# S$ X: W
{
0 O3 e# y7 j" p7 q; Z( t
int duration;
" v5 _& t5 |$ }
HANDLE eventHandle;
7 B7 P" b4 L- o! ^8 K i9 `
};
$ M6 Q4 C1 f( K7 \" A
+ k& G0 K9 A( e4 Z* T. W5 t; o
) S4 k ]+ B7 _' Y+ b& E+ l
//////////////////////////////////////////////////////////////////////
2 }$ H. J1 k4 s4 J- a
// Function : XSleepThread()
+ s9 l+ s6 t3 W' Z
// Purpose : The thread which will sleep for the given duration
% P5 ^2 c0 g) N! e; N
// Returns : DWORD WINAPI
& R* R4 @; f* v. B$ {
// Parameters:
. p& C6 @' N6 q% B3 p8 q
// 1. pWaitTime -
c) C2 w0 z0 C
//////////////////////////////////////////////////////////////////////
6 i5 f& a3 h0 N- q K
DWORD WINAPI XSleepThread(LPVOID pWaitTime)
4 g8 N0 `% s5 g
{
3 O# y* o9 o/ m' O
XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
3 v" @/ ^ I* Y8 p1 q* X3 V
" M! w4 }$ X, i0 y! S
Sleep(sleep->duration);
: {% }; V. E5 t" K$ L( J5 o
SetEvent(sleep->eventHandle);
7 ^5 g% f$ b( P2 u* v4 c
/ R+ K! t$ n* \4 J4 F( ^* j
return 0;
! @5 u" Z& @3 J; {3 m
}
+ o4 x" N" m) z, X2 w" q6 g
& n. @4 N4 F. q' [, `/ x7 `+ p* B
//////////////////////////////////////////////////////////////////////
6 y+ ~* H; a! Y; a( ^
// Function : XSleep()
a6 I8 L# c5 v& `9 ?) N
// Purpose : To make the application sleep for the specified time
k' f. Y, E* m& e7 `
// duration.
/ _& R+ y/ v: i# B8 {! R
// Duration the entire time duration XSleep sleeps, it
( ?+ M3 N8 G9 n3 E! Q
// keeps processing the message pump, to ensure that all
8 ?! n8 |1 p' _8 O) a
// messages are posted and that the calling thread does
8 B: }; f2 d, B2 ^ v
// not appear to block all threads!
, r- Z: Q# r. ?/ C& [2 H" s4 |5 g
// Returns : none
S# o% {. p( O( O! P
// Parameters:
. |5 N) L3 ^6 g/ U& e: y
// 1. nWaitInMSecs - Duration to sleep specified in miliseconds.
$ Z6 B& _3 [0 E; H' V2 g" q
//////////////////////////////////////////////////////////////////////
5 |9 Q" {4 K6 w
void XSleep(int nWaitInMSecs,int nAscll)
7 t( H! b% b. n) o0 C3 D
{
1 v: Z1 z" S8 l5 U, E
! B' ^ u# k. X9 j& o! m# S2 g
<blockquote><span class="Apple-tab-span" style="white-space:pre"> </span>INPUT input[2];
复制代码
$ d$ H! I, r, _0 ]; T* t3 v
; \& ^# _6 \% e5 H, o8 \# l7 O
xsleep.h文件代码
1 A5 N+ o) A# R# d4 `
+ @" B- t( }5 p/ Y2 Q8 E F) C
//Download by http://www.cncml.com
( ]3 T* x# z% f: g; I2 `8 I
#ifndef _XSLEEP_H_
1 o3 C8 c% h2 U6 H) a9 B/ x
#define _XSLEEP_H_
0 {. H: f' R/ \+ u+ r% O
# I- d1 G/ u8 U
void XSleep(int nWaitInMSecs, int nAscll);
3 | I) }0 k Y6 H( h( E
5 c( F. j5 Z( [- w
#endif // _XSLEEP_H_
/ L" P" L& i7 v
复制代码
4 P$ o0 C2 N" Y, w2 v7 m1 p
$ j- }3 b! E' I: Z& K
mfc中的调用代码如下
. x2 }4 q) |3 k* t* V& [% X
int ascll;
复制代码
XSleep(500,ascll);
复制代码
& b4 J4 \8 z$ N8 l% e
0 i7 c0 v+ B8 b A
欢迎光临 cncml手绘网 (http://www.cncml.com/)
Powered by Discuz! X3.2