cncml手绘网
标题:
非滞后式延迟执行
[打印本页]
作者:
admin
时间:
2018-6-27 00:03
标题:
非滞后式延迟执行
方法如下
/ k* q+ ^) e) z
建立 xsleep.cpp和xsleep.p文件
4 O9 C0 ]5 y. l* r% y$ {" y
xsleep.cpp文件代码如下
2 X- b A- r0 {
//Download by http://www.cncml.com
& f& b( S8 {( K$ U
#include <windows.h>
8 x; l9 I5 t$ q# x+ ^" C1 |
#include <stdafx.h>
- f1 z9 K& G" r( r' K9 z
5 A. u- o$ _$ Z, S4 b
// This structure is used internally by the XSleep function
5 j# o: G7 }. g" L4 ?9 d
struct XSleep_Structure
( {9 R! R. g9 q! z2 d
{
& {& g3 Q, v1 _1 f4 p
int duration;
: j! L$ v2 I& U4 Z$ E
HANDLE eventHandle;
W6 T% c8 V) K
};
; @$ ~- h5 F% ~/ r/ q7 \5 W% J9 f
. o) }% N( c6 r8 v9 u
% i1 g( D$ E% g9 I- N. z2 O
//////////////////////////////////////////////////////////////////////
% w8 d& ~8 F! y
// Function : XSleepThread()
" Z" Y1 ~, P+ U* f3 E
// Purpose : The thread which will sleep for the given duration
0 G: Q- |- e+ I' K, r- k1 ?
// Returns : DWORD WINAPI
) D4 N( `8 k+ y/ S+ V9 s$ k* C, f
// Parameters:
/ ~! s" i& s9 h C! {
// 1. pWaitTime -
4 Z# o4 u) p# p& F* v" a
//////////////////////////////////////////////////////////////////////
. b( H1 P+ s2 E; g3 z9 |7 v' q. c
DWORD WINAPI XSleepThread(LPVOID pWaitTime)
3 `" m. j$ V% i$ j( O# Y4 H- N6 A
{
. k( a7 f5 S/ g
XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
! w% q$ i/ t, t" o( B2 f! m
" R$ ?8 I& Y3 \! |6 w5 I
Sleep(sleep->duration);
* R& I2 q* @5 C( e" e A
SetEvent(sleep->eventHandle);
* }& B( c) s8 h: }5 K$ U4 `
0 `4 j( N5 k; U8 N4 Q. T6 \
return 0;
+ {, U/ G0 ?+ z4 n& m3 q; c7 _
}
: R T$ y' y5 T8 G! q
) v3 [, _- l* z. ^: @
//////////////////////////////////////////////////////////////////////
! x5 d$ P; o( L/ s
// Function : XSleep()
3 W: Y3 K$ v% p+ l
// Purpose : To make the application sleep for the specified time
3 h: `$ o% X6 x& f. Z k
// duration.
; E2 F: o: F0 b5 z4 S
// Duration the entire time duration XSleep sleeps, it
( o8 R3 f# ~1 c; ?! w" L& h4 b
// keeps processing the message pump, to ensure that all
" E% U) d# k4 [* A
// messages are posted and that the calling thread does
) C+ A7 h: o6 B" d; p
// not appear to block all threads!
1 g6 _; E. e7 |5 F; Q" T
// Returns : none
8 i8 K5 k2 w8 c% I) t, x$ W) D
// Parameters:
! T& R* z$ ]7 ^9 C7 S {- l O
// 1. nWaitInMSecs - Duration to sleep specified in miliseconds.
- t! ?# G/ o5 a
//////////////////////////////////////////////////////////////////////
. P; \8 e' s. h
void XSleep(int nWaitInMSecs,int nAscll)
' m$ d+ |* }- i
{
* P4 P# q! S u. v
6 K* @" L5 {3 b O" z7 B% x
<blockquote><span class="Apple-tab-span" style="white-space:pre"> </span>INPUT input[2];
复制代码
6 K( W4 e1 V% R/ G3 j, f
6 U4 \" g1 K' {% u" r. C
xsleep.h文件代码
/ @5 D. s: H! ^5 y, i
0 I4 X, m# W- p* ^- @% W; r% V
//Download by http://www.cncml.com
5 f' ~9 E* C9 F4 |
#ifndef _XSLEEP_H_
6 L$ n% l! Q7 U6 P1 D
#define _XSLEEP_H_
, [& a# P' G1 f) Z' ~6 d
. O1 m4 n: w: h1 X# X& P
void XSleep(int nWaitInMSecs, int nAscll);
1 q, y# R7 c0 z1 R3 v
% X( T E. Q- x% K9 ?2 x( `7 w3 W
#endif // _XSLEEP_H_
2 E: J/ c z1 F: |
复制代码
- m6 ?) X8 O" z/ \: v
. M1 i! o3 x8 f2 e0 B6 E! N
mfc中的调用代码如下
# C+ c) u# n) ~0 s, X
int ascll;
复制代码
XSleep(500,ascll);
复制代码
2 a1 @0 l4 F. v9 N z6 ?0 u; U
" l- ^' z ~, R3 h/ c8 d) J
欢迎光临 cncml手绘网 (http://www.cncml.com/)
Powered by Discuz! X3.2