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

另请参阅

取消关联CurrentThreadFromCallback

FreeLibraryWhenCallbackReturns

LeaveCriticalSectionWhenCallbackReturns

ReleaseMutexWhenCallbackReturns

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

SetThreadpoolCallbackRunsLong

线程池

TrySubmitThreadpoolCallback