作者yoco315 (眠月)
站内Programming
标题Re: Win32 waiting/thread 一个奇怪的问题
时间Tue Jul 25 01:23:36 2006
※ 引述《[email protected] (眠月..)》之铭言:
: 问题! 这个 SomeApiInDLL() 就是很久很久後才会 return 值,
: 可是! 在等待 SomeApiInDLL return 的过程当中
: [Hello] 这个按钮却“可以按”!!!
: 完全不会被卡住
自己回自己
我用 Google 蒐 "C++ DoEvents" 找到的答案
结果真是简单的令人吐血 XD
类似 VB 的 DoEvents()
============================================================
void
DoEvents()
{
MSG msg ;
long sts ;
do {
if ( sts = ::PeekMessage ( &msg, (HWND)NULL, 0, 0, PM_REMOVE) ) {
::TranslateMessage ( &msg ) ;
::DispatchMessage ( &msg ) ;
}
} while ( sts ) ;
}
============================================================
void SomeLoopWaitFunction()
{
while ( sensor ) {
DoEvents() ;
Sleep ( 100 ) ; // minimize CPU loading
}
============================================================
想了半天想不到,
结果原来根本就是在里面自己另外弄一个 message loop XDDDDDDD
我败啦。
--
To iterate is human, to recurse is divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.202.199
1F:推 qrtt1:simple is beauty XD 163.26.34.105 07/25 05:42