Funzioni di callbackCallback Functions

Una funzione di callback è il codice di un'applicazione gestita che agevola una funzione di DLL non gestita nel completamento di un'attività.A callback function is code within a managed application that helps an unmanaged DLL function complete a task. Le chiamate a una funzione di callback passano indirettamente da un'applicazione gestita a una funzione di DLL, per poi tornare nuovamente all'implementazione gestita.Calls to a callback function pass indirectly from a managed application, through a DLL function, and back to the managed implementation. Alcune delle numerose funzioni di DLL chiamate tramite platform invoke richiedono, per essere eseguite in modo corretto, una funzione di callback nel codice gestito.Some of the many DLL functions called with platform invoke require a callback function in managed code to run properly.

Nella maggior parte dei casi, per chiamare una funzione di DLL dal codice gestito, si crea e si usa una definizione gestita della funzione.To call most DLL functions from managed code, you create a managed definition of the function and then call it. Il processo è semplice.The process is straightforward.

L'utilizzo di una funzione di DLL che richiede una funzione di callback prevede alcuni passaggi aggiuntivi.Using a DLL function that requires a callback function has some additional steps. In primo luogo è necessario determinare se la funzione richiede un callback controllando la documentazione relativa alla funzione.First, you must determine whether the function requires a callback by looking at the documentation for the function. Successivamente occorre creare la funzione di callback nell'applicazione gestita.Next, you have to create the callback function in your managed application. Infine si chiama la funzione di DLL passandole come argomento un puntatore alla funzione di callback.Finally, you call the DLL function, passing a pointer to the callback function as an argument.

La figura seguente presenta una riepilogo della funzione di callback e dei passaggi di implementazione:The following illustration summarizes the callback function and implementation steps:

Diagramma che illustra il processo di callback di platform invoke.

Le funzioni di callback sono ideali per i casi in cui un'attività viene eseguita ripetutamente.Callback functions are ideal for use in situations in which a task is performed repeatedly. Un altro utilizzo comune è quello con le funzioni di enumerazione, ad esempio EnumFontFamilies, EnumPrinters e EnumWindows nell'API Windows.Another common usage is with enumeration functions, such as EnumFontFamilies, EnumPrinters, and EnumWindows in the Windows API. La funzione EnumWindows esegue l'enumerazione di tutte le finestre esistenti nel computer, chiamando la funzione di callback per eseguire un'attività su ogni finestra.The EnumWindows function enumerates through all existing windows on your computer, calling the callback function to perform a task on each window. Per istruzioni e per un esempio, vedere Procedura: Implementare funzioni di callback.For instructions and an example, see How to: Implement Callback Functions.

Vedere ancheSee also