Freigeben über


CallbackMayRunLong-Funktion (threadpoolapiset.h)

Gibt an, dass der Rückruf möglicherweise nicht schnell zurückgegeben wird.

Syntax

BOOL CallbackMayRunLong(
  [in, out] PTP_CALLBACK_INSTANCE pci
);

Parameter

[in, out] pci

Ein Zeiger auf eine TP_CALLBACK_INSTANCE-Struktur, die den Rückruf instance definiert. Der Zeiger wird an die Rückruffunktion übergeben.

Rückgabewert

Die Funktion gibt TRUE zurück, wenn ein anderer Thread im Threadpool für die Verarbeitung von Rückrufen verfügbar ist oder der Threadpool einen neuen Thread erstellen konnte. In diesem Fall kann die aktuelle Rückruffunktion den aktuellen Thread unbegrenzt verwenden.

Die Funktion gibt FALSE zurück, wenn ein anderer Thread im Threadpool nicht für die Verarbeitung von Rückrufen verfügbar ist und der Threadpool keinen neuen Thread erstellen konnte. Der Threadpool versucht nach einer Verzögerung, einen neuen Thread zu erstellen, aber wenn die aktuelle Rückruffunktion lange ausgeführt wird, kann der Threadpool an Effizienz verlieren.

Hinweise

Der Threadpool kann diese Informationen verwenden, um besser zu bestimmen, wann ein neuer Thread erstellt werden soll.

Die CallbackMayRunLong-Funktion sollte nur von dem Thread aufgerufen werden, der den Rückruf verarbeitet. Das Aufrufen dieser Funktion aus einem anderen Thread kann zu einer Racebedingung führen.

Die CallbackMayRunLong-Funktion kennzeichnet den Rückruf immer als lang ausgeführt, unabhängig davon, ob ein Thread für die Verarbeitung von Rückrufen verfügbar ist oder nicht oder der Threadpool einen neuen Thread zuordnen kann. Daher sollte diese Funktion nur einmal aufgerufen werden, auch wenn false zurückgegeben wird.

Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0600 oder höher.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile threadpoolapiset.h (einschließen von Windows.h unter Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

DisassociateCurrentThreadFromCallback

FreeLibraryWhenCallbackReturns

LeaveCriticalSectionWhenCallbackReturns

ReleaseMutexWhenCallbackReturns

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

SetThreadpoolCallbackRunsLong

Threadpools

TrySubmitThreadpoolCallback