CallbackMayRunLong

コールバックがすぐに戻らない可能性があることを示す。

CallbackMayRunLong pci

pci : [intptr] コールバックインスタンスを定義する TP_CALLBACK_INSTANCE 構造体へのポインタ。このポインタはコールバック関数に渡される。

(プラグイン / モジュール : kernel32.dll)

解説

コールバックがすぐに戻らない可能性があることを示す。

[戻り値]
関数は、スレッドプール内にコールバック処理に利用できる別スレッドがあるか、またはスレッドプールが新しいスレッドを作成できた場合に TRUE
を返す。この場合、現在のコールバック関数は現在のスレッドを無制限に使用してよい。関数は、スレッドプール内にコールバック処理に利用できる別スレッドがなく、スレッドプールが新しいスレッドを作成できなかった場合に
FALSE
を返す。スレッドプールは遅延後に新しいスレッドの作成を試みるが、現在のコールバック関数が長時間実行されるとスレッドプールの効率が低下する可能性がある。

[備考]
スレッドプールはこの情報を使って、新しいスレッドを作成すべきタイミングをより適切に判断できる。CallbackMayRunLong
関数はコールバックを処理中のスレッドからのみ呼ぶべきである。別のスレッドから呼ぶとレースコンディションを引き起こすおそれがある。CallbackMayRunLong
関数はコールバック処理用のスレッドが利用可能かどうかや、スレッドプールが新しいスレッドを割り当てられるかどうかに関わらず、常にコールバックを長時間実行としてマークする。したがって、FALSE
を返した場合であってもこの関数は一度だけ呼ぶべきである。この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT
を 0x0600 以降として定義する。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs