cncml手绘网
标题:
非滞后式延迟执行
[打印本页]
作者:
admin
时间:
2018-6-27 00:03
标题:
非滞后式延迟执行
方法如下
) ~0 j1 D2 M, V% f1 e) L) `2 d& v9 C
建立 xsleep.cpp和xsleep.p文件
! E7 ]% _( w; V+ u9 J
xsleep.cpp文件代码如下
: g7 |1 v. d' k" {
//Download by http://www.cncml.com
0 M; M4 ?. r" x% d, `: A
#include <windows.h>
* j3 n; a1 H( x% x# x* G ]. e
#include <stdafx.h>
* v6 F% d% @' R
) u: k+ M8 h! n' U& H+ c" B
// This structure is used internally by the XSleep function
4 w3 r7 P" W& D$ K& Q
struct XSleep_Structure
. m, [" y5 l& p o7 V1 H( x, j- O
{
7 Z3 W5 u( M, b) r4 ?7 ]; Z
int duration;
% |. U4 P; l1 F/ Z; _
HANDLE eventHandle;
6 ]/ k; g# F5 ]" w5 {
};
* `/ q0 P- ~& o( J R6 G
+ S/ G1 R) q( O
8 b, x7 Z* [; \( E! r
//////////////////////////////////////////////////////////////////////
o. Z: F3 g7 P
// Function : XSleepThread()
1 R# B/ n* E/ o) N! r- s
// Purpose : The thread which will sleep for the given duration
* g" |* b$ r" }" e
// Returns : DWORD WINAPI
, W& T c! ?' e9 R
// Parameters:
3 l' Z$ l/ d ?
// 1. pWaitTime -
: j" \* n1 Q7 J2 M7 W0 w: b% o6 R
//////////////////////////////////////////////////////////////////////
" J- x# R; }- G; q; t
DWORD WINAPI XSleepThread(LPVOID pWaitTime)
" A/ b$ l6 m' Z7 Y
{
# S) g$ M: ? h- k9 h, g" `
XSleep_Structure *sleep = (XSleep_Structure *)pWaitTime;
! `. o) }* e' H! C8 r
; l, ]1 x6 _4 {6 y
Sleep(sleep->duration);
1 a2 N* P) A* m v. [
SetEvent(sleep->eventHandle);
O4 D* ^% l" B
, P1 t; A9 j' y% H! s; V9 K) f" g8 Z
return 0;
9 h3 X- I% s6 g" u4 x8 p2 H
}
q5 l2 l! p6 C. q' W2 b6 [: \
6 I9 S2 W8 t" m5 D& _3 a3 b
//////////////////////////////////////////////////////////////////////
; G) J" W3 b) N* x N" I& Q& j
// Function : XSleep()
2 w+ Z3 g- ]; Z
// Purpose : To make the application sleep for the specified time
" K K! ^- R- h6 r6 w
// duration.
* B2 x6 i" m. }8 ^) J. q+ Y
// Duration the entire time duration XSleep sleeps, it
3 G& Z4 ^' _0 R, z- M* u2 p
// keeps processing the message pump, to ensure that all
3 r! `( T( q9 f" b
// messages are posted and that the calling thread does
2 o( ?+ O D0 Z
// not appear to block all threads!
% F% B% V. |0 A. I5 D: v
// Returns : none
N+ _( W! |7 v( E/ x8 i1 A8 X
// Parameters:
: e9 p& u% Z% a% G& d7 v
// 1. nWaitInMSecs - Duration to sleep specified in miliseconds.
% X' _, R% x4 w' m
//////////////////////////////////////////////////////////////////////
, D0 N4 v$ g( {9 V& J1 f
void XSleep(int nWaitInMSecs,int nAscll)
/ j" N; e+ K9 O3 V! l# s9 M% a9 W
{
2 J& ^, ^( i3 H- D
: y. t. t, ?, b0 a' F5 k9 B
<blockquote><span class="Apple-tab-span" style="white-space:pre"> </span>INPUT input[2];
复制代码
2 x# g0 ?( D9 a) J, ~: h
9 p' H+ r2 h. P$ V: Z8 |. y
xsleep.h文件代码
2 U# O' R4 G! a4 Y" e
$ \# P- w- K0 y0 F" O
//Download by http://www.cncml.com
4 U8 H$ ]$ J! c# V0 L% `, R4 N
#ifndef _XSLEEP_H_
5 u5 q( j- X; o& u6 e% Q
#define _XSLEEP_H_
H/ i- \5 ~0 o4 z4 W" j0 l
6 L& `8 k( |8 K! J
void XSleep(int nWaitInMSecs, int nAscll);
3 M$ w5 |3 d+ R2 F8 k0 E
$ L% D2 m1 i7 Z, z; M+ B
#endif // _XSLEEP_H_
: _. g. k0 Q" E7 s1 d; T
复制代码
8 w9 e7 j* \0 g
7 t7 R: O+ ]: w# M* U
mfc中的调用代码如下
7 O$ D5 G4 M6 z, T
int ascll;
复制代码
XSleep(500,ascll);
复制代码
4 t- R6 S1 ?' i8 _# k
7 u% i$ r; E7 N. x+ K' R
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2