CallbackMayRunLong 函数 (threadpoolapiset.h)
指示回调可能不会快速返回。
语法
BOOL CallbackMayRunLong(
[in, out] PTP_CALLBACK_INSTANCE pci
);
参数
[in, out] pci
指向定义回调实例 的TP_CALLBACK_INSTANCE 结构的指针。 指针将传递到回调函数。
返回值
如果线程池中的另一个线程可用于处理回调,或者线程池能够创建新线程,则函数将返回 TRUE。 在这种情况下,当前回调函数可能会无限期地使用当前线程。
如果线程池中的另一个线程无法处理回调,并且该线程池无法创建新线程,则函数返回 FALSE。 线程池将在延迟后尝试创建新线程,但如果当前回调函数运行时间较长,线程池可能会失去效率。
注解
线程池可能会使用此信息更好地确定何时应创建新线程。
CallbackMayRunLong 函数只能由正在处理回调的线程调用。 从另一个线程调用此函数可能会导致争用情况。
CallbackMayRunLong 函数始终将回调标记为长时间运行,无论线程是否可用于处理回调或线程池能够分配新线程。 因此,此函数应只调用一次,即使它返回 FALSE。
若要编译使用此函数的应用程序,请将_WIN32_WINNT定义为 0x0600 或更高版本。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | threadpoolapiset.h (包括 Windows 7 上的 Windows.h、Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib |
DLL | Kernel32.dll |
另请参阅
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns