|
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
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database