|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| Yes
| Win32s
| No
| Import Library
| kernel32.lib
| Header File
| winbase.h
| Unicode
| No
| Platform Notes
| None
|
|
|
SleepEx
The SleepEx function causes the current thread to enter a wait state until one of the
following occurs:
- An I/O completion callback function is called
- An asynchronous procedure call (APC) is queued to the thread.
- The time-out interval elapses
DWORD SleepEx(
DWORD dwMilliseconds,
| // time-out interval in milliseconds
| BOOL bAlertable
| // early completion flag
| );
|
|
Parameters
dwMilliseconds
Specifies the time, in milliseconds, that the delay is to occur. A value of
zero causes the function to return immediately. A value of INFINITE causes an
infinite delay.
bAlertable
Specifies whether the function may terminate early due to an I/O completion
callback function or an APC. If bAlertable is FALSE, the function does not return until the time-out period has elapsed.
If an I/O completion callback occurs, the function does not return and the I/O
completion function is not executed. If an APC is queued to the thread, the
function does not return and the APC function is not executed.
If bAlertable is TRUE and the thread that called this function is the same thread that
called the extended I/O function (ReadFileEx or WriteFileEx), the function returns when either the time-out period has elapsed or when an
I/O completion callback function occurs. If an I/O completion callback occurs,
the I/O completion function is called. If an APC is queued to the thread (QueueUserAPC), the function returns when either the timer-out period has elapsed or when
the APC function is called.
Return Values
The return value is zero if the specified time interval expired.
The return value is WAIT_IO_COMPLETION if the function returned due to one or
more I/O completion callback functions. This can happen only if bAlertable is TRUE, and if the thread that called the SleepEx function is the same thread that called the extended I/O function.
Remarks
This function can be used with the ReadFileEx or WriteFileEx functions to suspend a thread until an I/O operation has been completed.
These functions specify a completion routine that is to be executed when the I/O
operation has been completed. For the completion routine to be executed, the
thread that called the I/O function must be in an alertable wait state when the
completion callback function occurs. A thread goes into an alertable wait state by
calling either SleepEx, MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx, or WaitForMultipleObjectsEx, with the function's bAlertable parameter set to TRUE.
A thread can relinquish the remainder of its time slice by calling this
function with a sleep time of zero milliseconds.
You have to be careful when using SleepEx and DDE. If a thread creates any windows, it must process messages. DDE sends
messages to all windows in the system. If you have a thread that uses a wait
function with no time-out interval, the system will deadlock. Therefore, if you
have a thread that creates windows, use MsgWaitForMultipleObjects or MsgWaitForMultipleObjectsEx, rather than SleepEx.
See Also
MsgWaitForMultipleObjects, MsgWaitForMultipleObjectsEx, QueueUserAPC, ReadFileEx, Sleep, WaitForMultipleObjectsEx, WaitForSingleObjectEx, WriteFileEx
Related Links
Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Pen API Programmer's Reference (penapi.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages
|