Asynchronous Procedure Calls
An asynchronous procedure call (APC) is a function that executes
asynchronously in the context of a particular thread. When an APC is queued to a thread, the
system issues a software interrupt. The next time the thread is scheduled, it
will run the APC function. APCs made by the system are called "kernel-mode
APCs." APCs made by an application are called "user-mode APCs." A thread must be in
an alertable state to run a user-mode APC.
Each thread has its own APC queue. An application queues an APC to a thread by
calling the
QueueUserAPC function. The calling thread specifies the address of an APC function in the
call to
QueueUserAPC. The queuing of an APC is a request for the thread to call the APC function.
When a user-mode APC is queued, the thread to which it is queued is not
directed to call the APC function unless it is in an alertable state. A thread enters
an alertable state when it calls the
SleepEx,
SignalObjectAndWait,
MsgWaitForMultipleObjectsEx,
WaitForMultipleObjectsEx, or
WaitForSingleObjectEx function.
Note that the
ReadFileEx and
WriteFileEx functions are implemented using an APC as the completion notification
callback mechanism.
- 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