cncml手绘网
标题:
非滞后式延迟执行
[打印本页]
作者:
admin
时间:
2018-6-27 00:03
标题:
非滞后式延迟执行
方法如下
7 L; J+ g: t. U- @- t
建立 xsleep.cpp和xsleep.p文件
: J( E( b, w& z$ o' }
xsleep.cpp文件代码如下
! D; c" P8 d' l' d0 i+ _, R
//Download by http://www.cncml.com
5 R0 c4 i! | p
#include <windows.h>
& @! @/ F N: U) M/ ?6 u+ w+ }
#include <stdafx.h>
/ U1 E: D7 U/ m/ y6 Y
9 e3 B* {& R. A6 y% L& \
// This structure is used internally by the XSleep function
/ b/ W) N( F5 o
struct XSleep_Structure
0 i- l3 e. P8 J: J) X0 a8 K
{
9 _2 c, u6 u5 @4 a
int duration;
" C8 \$ F; P) x# Y& I
HANDLE eventHandle;
* b9 y, G" l: r! ~
};
" Q3 P" |+ V5 v) H' R' z
: r0 m2 y' j, j/ j6 s
1 z9 N$ [2 ~4 C4 J( M+ c% ~9 g
//////////////////////////////////////////////////////////////////////
5 H6 o K$ l( w' `# ?6 B c3 V
// Function : XSleepThread()
/ h" t: V! A2 q
// Purpose : The thread which will sleep for the given duration
1 _! S7 D* ^# r- q% `8 d- S; o
// Returns : DWORD WINAPI
8 q! _& r' B$ V8 B& L$ n. A8 m9 Y
// Parameters:
! ^* S, T$ n& z, V) s
// 1. pWaitTime -
. \# Y& K$ ]& T6 L X
//////////////////////////////////////////////////////////////////////
- P9 z g9 P" _/ {9 n
DWORD WINAPI XSleepThread(LPVOID pWaitTime)
7 n) S9 ^9 C0 }* C- X& ?
{
6 m; O1 d: S8 M' i, X( h
XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
; d* `" J$ ` @9 `3 q$ T# w M* k
- v [/ \6 d) B2 o( i) U
Sleep(sleep->duration);
2 |, m6 o. Z" k
SetEvent(sleep->eventHandle);
( I: M( r) i% F1 V& c
! J9 s: {7 U. F: I- q; b
return 0;
$ e, X. }3 u8 z6 t5 @. a& A
}
7 f* w: Q$ h+ R5 W. f$ m6 S9 \. ?6 ]% H
; Q5 J% F; J; ? M3 P" {
//////////////////////////////////////////////////////////////////////
7 v# j' e% u4 w# |4 \2 J1 b
// Function : XSleep()
% V0 o; X+ t% ]# k: n
// Purpose : To make the application sleep for the specified time
, W" Z0 p. T* z+ W1 }
// duration.
$ [6 u0 q5 t5 a. r8 S) Y
// Duration the entire time duration XSleep sleeps, it
+ F, f+ \* q7 g. P0 s4 b% ^
// keeps processing the message pump, to ensure that all
' j0 f8 k; r3 n' i9 T5 Z( w. m
// messages are posted and that the calling thread does
( ]6 F, f4 X1 c9 u2 C6 D: X
// not appear to block all threads!
$ Y! P( i J0 Q2 r2 Q
// Returns : none
: L. K+ u w [/ R% n9 @9 m* @/ y
// Parameters:
( E' \, T# B7 Y8 p1 p0 W8 [
// 1. nWaitInMSecs - Duration to sleep specified in miliseconds.
* f- m f! d! B7 V% n
//////////////////////////////////////////////////////////////////////
' `; w8 @9 y( ]" J
void XSleep(int nWaitInMSecs,int nAscll)
8 R' M# }4 r4 e$ r
{
0 l6 ~1 d$ v. C1 Z/ f
/ x a# V' r8 @# C
<blockquote><span class="Apple-tab-span" style="white-space:pre"> </span>INPUT input[2];
复制代码
/ a& N$ A* H; w1 p( |) @1 h" e
3 U2 Z2 ?. m5 n: C
xsleep.h文件代码
8 T% K* L) t: j4 Z" x: g; h
, K9 l2 N. P' L' u
//Download by http://www.cncml.com
z( B. }1 e% Q& \: ~+ V( B/ O
#ifndef _XSLEEP_H_
, d- X, H) p4 j
#define _XSLEEP_H_
/ I9 I+ C# a% {) p' J' `( j9 V# O
`3 l w, w) o9 S* P( u) D
void XSleep(int nWaitInMSecs, int nAscll);
/ A( P$ k' [$ y( J, u
# u% {8 c( X5 E# m/ [5 K/ v
#endif // _XSLEEP_H_
5 w+ | x* _9 Z3 J7 {
复制代码
: d+ D# x, F; w, z; Q# Q
8 x# |! X7 j$ t( v
mfc中的调用代码如下
) [: g1 |9 L) H
int ascll;
复制代码
XSleep(500,ascll);
复制代码
/ X0 k- `4 Q% B) q, a3 b
1 |/ i5 H2 O+ f. ]5 y. q
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2