cncml手绘网
标题:
非滞后式延迟执行
[打印本页]
作者:
admin
时间:
2018-6-27 00:03
标题:
非滞后式延迟执行
方法如下
+ P/ C8 r4 q$ `6 ]1 I% Q
建立 xsleep.cpp和xsleep.p文件
! E% E0 d3 z+ I
xsleep.cpp文件代码如下
' n4 r4 p% N. u+ E" Z. }
//Download by http://www.cncml.com
1 j* Y* Z$ m. P" U
#include <windows.h>
. T8 Z& @- V* y0 S. W+ f
#include <stdafx.h>
7 Z, [# J1 r: C c O) O
7 ]4 i$ {! H' C7 W) y: |5 y) E
// This structure is used internally by the XSleep function
- Y( `9 d. e h4 q! {2 J
struct XSleep_Structure
2 T/ {/ {9 I% V# k7 S
{
7 s, y! X4 z6 F z5 ~; x
int duration;
% g. {! E% k5 \+ M6 O
HANDLE eventHandle;
5 l5 [# ~: W* ^: K
};
9 T% p& x5 Z4 ?% Q: J/ c" U
2 m( y3 x( t+ D Z
D! W5 |; F0 C- d- _. ?. r- l x
//////////////////////////////////////////////////////////////////////
9 V; m2 m s5 G: G8 v
// Function : XSleepThread()
5 ?5 z3 I! o& W @9 S! ?
// Purpose : The thread which will sleep for the given duration
& C p) n3 \" l ~* _
// Returns : DWORD WINAPI
( u+ C# G8 X1 H# A
// Parameters:
) B4 T+ T% j' P# b' K! H2 }( S
// 1. pWaitTime -
( L7 V ~& L* m6 G1 r
//////////////////////////////////////////////////////////////////////
9 G3 J" o( q# ?2 @& b! c
DWORD WINAPI XSleepThread(LPVOID pWaitTime)
/ x. I; c+ I% ]
{
' g7 k6 `" u( F6 R+ A$ j' @0 t
XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
: \' T% N& {" X/ ~$ E
( @9 }) L. C5 V
Sleep(sleep->duration);
- J( _7 n" g5 Z4 o
SetEvent(sleep->eventHandle);
2 ^. L+ C, o. v: g" ~3 l+ q! \
8 a1 V# L. A6 ^; l
return 0;
+ S! \% `9 @5 N; H" I, g
}
" v; o5 c6 M& g' ~1 X$ u5 v
* E/ ^7 v1 z: N, k' o0 o& A- o
//////////////////////////////////////////////////////////////////////
. H/ n5 O5 e9 i+ n% s
// Function : XSleep()
6 ^9 q' H9 N7 g) d8 |) s
// Purpose : To make the application sleep for the specified time
8 S1 o- H$ r2 ^
// duration.
+ R# t, B- @; C4 @
// Duration the entire time duration XSleep sleeps, it
5 K* Z6 m" N) B" X' Q7 l' D
// keeps processing the message pump, to ensure that all
2 H5 D' X9 I! [8 c
// messages are posted and that the calling thread does
2 D) h: j0 }, m' e
// not appear to block all threads!
' d6 a4 }; h8 \ R& ` n) M
// Returns : none
7 Q. Z- b& M" O. T) o
// Parameters:
H0 d( z, U0 l6 {% u$ i1 P0 w
// 1. nWaitInMSecs - Duration to sleep specified in miliseconds.
; V* B' ^1 y7 c/ M
//////////////////////////////////////////////////////////////////////
- }3 | h u* Y/ G; q& ?
void XSleep(int nWaitInMSecs,int nAscll)
' A+ C, n( x7 h1 t- B9 e& i( b
{
8 q. Z' m, m9 _) @. I; L
4 M7 C+ X6 k" J, a7 e+ {, H
<blockquote><span class="Apple-tab-span" style="white-space:pre"> </span>INPUT input[2];
复制代码
" W" y8 X5 C0 V/ ^
' M2 C7 Q0 D2 y7 }8 Q: L2 Z3 B! d
xsleep.h文件代码
/ {+ N; f% c$ r5 Z
' o3 e4 T2 {; i
//Download by http://www.cncml.com
' j* P: v F) S; Q! c5 Q
#ifndef _XSLEEP_H_
& _3 [3 {2 `9 r/ r% e( l
#define _XSLEEP_H_
5 C1 Y. W, ?" z$ K- s
$ I( i" [5 ]1 x
void XSleep(int nWaitInMSecs, int nAscll);
8 [7 Y, w7 I- v
& k1 v( c; q: m- ?
#endif // _XSLEEP_H_
" M1 }" t* d( J3 \; r
复制代码
" t+ |# ?; j- a5 p
2 n- z. W r+ F2 Z) j1 V E1 `9 V
mfc中的调用代码如下
& V9 w/ Q$ X* u
int ascll;
复制代码
XSleep(500,ascll);
复制代码
1 P3 g4 W' B M8 Y7 n3 q
& Q1 y/ Q% J0 H' j
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2