回调函数

回调函数是托管应用程序中的代码,可帮助非托管 DLL 函数完成任务。 对回调函数的调用通过 DLL 函数间接从托管应用程序传递,并传回托管实现。 使用平台调用调用的一些 DLL 函数需要托管代码中的回调函数才能正常运行。

若要从托管代码调用大多数 DLL 函数,请创建函数的托管定义,然后调用它。 该过程非常简单。

使用需要回调函数的 DLL 函数有一些附加步骤。 首先,必须通过查看函数的文档来确定函数是否需要回调。 接下来,必须在托管应用程序中创建回调函数。 最后,调用 DLL 函数,将指针作为参数传递给回调函数。

下图总结了回调函数和实现步骤:

显示平台调用回调流程的示意图。

回调函数非常适合在重复执行任务的情况下使用。 另一种常见用法是枚举函数,例如 Windows API 中的 EnumFontFamiliesEnumPrintersEnumWindowsEnumWindows 函数枚举计算机上所有现有窗口,调用回调函数对每个窗口执行任务。 有关说明和示例,请参阅 如何:实现回调函数

另请参阅