Foxit PDF SDK
fx_process.h 文件参考

进程和线程相关定义和类的头文件。 更多...

浏览源代码.

struct  FX_HTHREAD
 互斥句柄的类型定义。 更多...
 
class  CFX_RWLock
 在非线程模式下,定义为空实现。 更多...
 
class  CFX_SpinLock
 在非线程模式下,定义为空实现。 更多...
 
struct  FX_SYSTEMTIME
 系统时间结构。 更多...
 
struct  FX_THREADHANDLER
 应用程序扩展的线程处理器。 更多...
 
struct  FXCRT_DATETIMEZONE
 日期和时间结构。 更多...
 

类型定义

typedef FX_ThreadResult(WINAPI * FX_CALLBACK_ThreadProxyProc) (FX_CALLBACK_ThreadProc threadProc, FX_LPVOID param)
 线程代理过程的回调函数。 更多...
 
进程ID的类型
typedef FX_DWORD FX_PROCESSID
 进程ID。
 

函数

时间
void FX_Time_GetSystemTime (FX_SYSTEMTIME *pSystemTime)
 获取当前系统日期和时间。 更多...
 
void FX_Time_GetLocalTime (FX_SYSTEMTIME *pSystemTime)
 获取当前本地日期和时间。 更多...
 
FX_DWORD FX_Time_GetClock ()
 获取调用进程已消耗的时钟周期。 更多...
 
FX_DWORD FX_Time_Sleep (FX_DWORD dwMilliseconds)
 延迟当前运行指定的毫秒数。 更多...
 
void FXCRT_GetCurrentSystemTime (FXCRT_DATETIMEZONE &dt)
 获取当前系统日期、时间和时区信息。 更多...
 
进程管理
void FX_Process_Initialize ()
 初始化进程。 更多...
 
void FX_Process_Finalize ()
 结束进程。 更多...
 
FX_PROCESSID FX_Process_GetID ()
 获取当前进程ID 更多...
 
FX_LPVOID FX_Process_GetPrivateData (FX_LPVOID key)
 获取当前进程中的私有数据。 更多...
 
void FX_Process_SetPrivateData (FX_LPVOID key, FX_LPVOID data, PD_CALLBACK_FREEDATA callback)
 设置当前进程中的私有数据。 更多...
 
void FX_Process_RemovePrivateData (FX_LPVOID key)
 移除当前进程中的私有数据。 更多...
 
CFX_ProcessContext * FX_Process_GetContext ()
 获取进程上下文。 更多...
 
线程处理器
FX_THREADHANDLERFX_Thread_GetHandler ()
 获取当前线程处理器。 更多...
 
void FX_Thread_SetHandler (FX_THREADHANDLER *pThreadHandler)
 设置当前线程处理器。 更多...
 
线程函数
FX_HTHREAD FX_Thread_Create (FX_INT32 nPriority, size_t szStack, FX_CALLBACK_ThreadProc threadProc, FX_LPVOID param)
 创建一个新线程。 更多...
 
void FX_Thread_Exit ()
 退出当前线程。 更多...
 
FX_HTHREAD FX_Thread_GetHandle ()
 获取当前线程句柄。 更多...
 
void FX_Thread_Yield ()
 将处理器让出给另一个线程。 更多...
 
FX_INT32 FX_Thread_GetLastError ()
 获取当前线程中的最后错误代码。 更多...
 
void FX_Thread_SetLastError (FX_INT32 nErr)
 设置当前线程中的最后错误代码。 更多...
 
FX_LPVOID FX_Thread_GetPrivateData (FX_LPVOID key)
 获取当前线程中的私有数据。 更多...
 
void FX_Thread_SetPrivateData (FX_LPVOID key, FX_LPVOID data, PD_CALLBACK_FREEDATA callback)
 设置当前线程中的私有数据。 更多...
 
void FX_Thread_RemovePrivateData (FX_LPVOID key)
 移除当前线程中的私有数据。 更多...
 
FX_INT32 FX_Thread_GetPriority (FX_HTHREAD hThread)
 获取线程优先级。 更多...
 
void FX_Thread_SetPriority (FX_HTHREAD hThread, FX_INT32 nPriority)
 设置线程优先级。 更多...
 
FX_INT32 FX_Thread_WaitForSingleThread (FX_HTHREAD hThread)
 等待单个线程终止。 更多...
 
FX_INT32 FX_Thread_WaitForMultipleThreads (const FX_HTHREAD *pThreads, FX_INT32 nCount)
 等待多个线程终止。 更多...
 
上下文访问
CFX_ThreadContext * FX_Thread_GetContext ()
 获取当前线程上下文。 更多...
 
CFX_ExceptionContext * FX_Thread_GetExceptionContext ()
 获取当前线程异常上下文。 更多...
 
互斥量
注解
互斥量在单线程模式下或未定义_FPDFAPI_MT_时被禁用, 在此条件下不要调用以下函数。互斥量支持同一线程中的递归调用。
FX_BOOL FX_Mutex_Initialize (FX_MUTEX *pMutex)
 初始化一个互斥量。 更多...
 
void FX_Mutex_Destroy (FX_MUTEX *pMutex)
 销毁一个互斥量。 更多...
 
FX_BOOL FX_Mutex_TryLock (FX_MUTEX *pMutex)
 尝试锁定一个互斥量。 更多...
 
void FX_Mutex_Lock (FX_MUTEX *pMutex)
 锁定一个互斥量。 更多...
 
void FX_Mutex_Unlock (FX_MUTEX *pMutex)
 解锁一个互斥量。 更多...
 
原子计数
注解
原子计数提供了在多个线程之间访问整数值的原子机制。 以下函数在单线程模式下也能工作。
FX_INT32 FX_Atom_Add32 (volatile FX_INT32 *pAddend, FX_INT32 nIncrement)
 增加32位整数值。 更多...
 
FX_INT32 FX_Atom_Subtract32 (volatile FX_INT32 *pAddend, FX_INT32 nDecrement)
 减少32位整数值。 更多...
 
FX_INT64 FX_Atom_Add64 (volatile FX_INT64 *pAddend, FX_INT64 nIncrement)
 增加64位整数值。 更多...
 
FX_INT64 FX_Atom_Subtract64 (volatile FX_INT64 *pAddend, FX_INT64 nDecrement)
 减少64位整数值。 更多...
 

线程优先级标志

#define FX_THREADPRIORITY_Lowest   -2
 最低优先级。
 
#define FX_THREADPRIORITY_Lower   -1
 较低优先级。
 
#define FX_THREADPRIORITY_Normal   0
 正常优先级。
 
#define FX_THREADPRIORITY_Higher   1
 较高优先级。
 
#define FX_THREADPRIORITY_Highest   2
 最高优先级。
 
#define THREAD_CALL_CONVENTION   WINAPI
 
typedef DWORD FX_ThreadResult
 
typedef FX_ThreadResult(WINAPI * FX_CALLBACK_ThreadProc) (FX_LPVOID param)
 线程过程的回调函数。 更多...
 

自旋锁

注解
自旋锁在单线程模式下或_FPDFAPI_MT_未定义时被禁用,在此条件下不要调用以下函数。 自旋锁是用于同步访问的轻量级并发机制。 自旋锁不支持同一线程中的递归调用。
#define FXMT_SPLOCK_THIS
 
#define FXMT_SPLOCK_OBJ(lock)
 
FX_BOOL FX_SpinLock_Initialize (FX_SPINLOCK *pSpinLock)
 初始化自旋锁。 更多...
 
void FX_SpinLock_Destroy (FX_SPINLOCK *pSpinLock)
 销毁一个自旋锁。 更多...
 
FX_BOOL FX_SpinLock_TryLock (FX_SPINLOCK *pSpinLock)
 尝试锁定一个自旋锁。 更多...
 
void FX_SpinLock_Lock (FX_SPINLOCK *pSpinLock)
 锁定一个自旋锁。 更多...
 
void FX_SpinLock_Unlock (FX_SPINLOCK *pSpinLock)
 解锁一个自旋锁。 更多...
 
FX_BOOL FX_SpinLock_IsLocked (FX_SPINLOCK *pSpinLock)
 确定指定的自旋锁是否被锁定。 更多...
 

读写锁

注解
读写锁在单线程模式下或_FPDFAPI_MT_未定义时被禁用, 在此条件下不要调用以下函数。
#define FXMT_RWLOCK_THIS
 
#define FXMT_RWLOCK_OBJ(lock, s)
 
#define FXMT_RWLOCK_DEFINEOBJ(rwLock, lock, s)
 
#define FXMT_RWLOCKOBJECT_DEFINE(rwLockObj)
 
#define FXMT_RWLOCKOBJECT_TRYREADLOCK(lockObj)
 
#define FXMT_RWLOCKOBJECT_TRYREADLOCK_IF(lockObj)
 
#define FXMT_RWLOCKOBJECT_READLOCK(lockObj)
 
#define FXMT_RWLOCKOBJECT_READUNLOCK(lockObj)
 
#define FXMT_RWLOCKOBJECT_TRYWRITELOCK(lockObj)
 
#define FXMT_RWLOCKOBJECT_TRYWRITELOCK_IF(lockObj)
 
#define FXMT_RWLOCKOBJECT_WRITELOCK(lockObj)
 
#define FXMT_RWLOCKOBJECT_WRITEUNLOCK(lockObj)
 
FX_BOOL FX_RWLock_Initialize (FX_RWLOCK *pRWLock)
 初始化读写锁。 更多...
 
void FX_RWLock_Destroy (FX_RWLOCK *pRWLock)
 销毁一个读写锁。 更多...
 
FX_BOOL FX_RWLock_TryReadLock (FX_RWLOCK *pRWLock)
 尝试锁定以进行共享读取。 更多...
 
void FX_RWLock_ReadLock (FX_RWLOCK *pRWLock)
 锁定以进行共享读取。 更多...
 
void FX_RWLock_ReadUnlock (FX_RWLOCK *pRWLock)
 解锁以进行共享读取。 更多...
 
FX_BOOL FX_RWLock_TryWriteLock (FX_RWLOCK *pRWLock)
 尝试锁定以进行独占写入。 更多...
 
void FX_RWLock_WriteLock (FX_RWLOCK *pRWLock)
 锁定以进行独占写入。 更多...
 
void FX_RWLock_WriteUnlock (FX_RWLOCK *pRWLock)
 解锁以进行独占写入。 更多...
 

详细描述

进程和线程相关定义和类的头文件。

Copyright (C) 2003-2026, Foxit Software Inc.. All Rights Reserved.

http://www.foxitsoftware.com

The following code is copyrighted and is the proprietary of Foxit Software Inc.. It is not allowed to distribute any parts of Foxit PDF SDK to third party or public without permission unless an agreement is signed between Foxit Software Inc. and customers to explicitly grant customers permissions.

函数说明

◆ FX_Atom_Add32()

FX_INT32 FX_Atom_Add32 ( volatile FX_INT32 pAddend,
FX_INT32  nIncrement 
)

增加32位整数值。

参数
[in,out]pAddend指向要增加值的32位整数的指针。
[in]nIncrement要添加到pAddend的增量值。
返回
新的增量值。

◆ FX_Atom_Add64()

FX_INT64 FX_Atom_Add64 ( volatile FX_INT64 *  pAddend,
FX_INT64  nIncrement 
)

增加64位整数值。

参数
[in,out]pAddend指向要增加值的64位整数的指针。
[in]nIncrement要添加到pAddend的增量值。
返回
新的增量值。

◆ FX_Atom_Subtract32()

FX_INT32 FX_Atom_Subtract32 ( volatile FX_INT32 pAddend,
FX_INT32  nDecrement 
)

减少32位整数值。

参数
[in,out]pAddend指向要减少值的32位整数的指针。
[in]nDecrement要从pAddend中减去的减量值。
返回
新的减量值。

◆ FX_Atom_Subtract64()

FX_INT64 FX_Atom_Subtract64 ( volatile FX_INT64 *  pAddend,
FX_INT64  nDecrement 
)

减少64位整数值。

参数
[in,out]pAddend指向要减少值的64位整数的指针。
[in]nDecrement要从pAddend中减去的减量值。
返回
新的减量值。

◆ FX_Mutex_Destroy()

void FX_Mutex_Destroy ( FX_MUTEX pMutex)

销毁一个互斥量。

参数
[in]pMutex指向要销毁的互斥量的指针。必须不能是NULL指针。
返回
无。

◆ FX_Mutex_Initialize()

FX_BOOL FX_Mutex_Initialize ( FX_MUTEX pMutex)

初始化一个互斥量。

参数
[in]pMutex指向需要初始化的互斥量的指针。必须不能是NULL指针。
返回
true表示成功,false表示失败。

◆ FX_Mutex_Lock()

void FX_Mutex_Lock ( FX_MUTEX pMutex)

锁定一个互斥量。

参数
[in]pMutex指向互斥量的指针。必须不能是NULL指针。
返回
无。
注解
如果调用此函数时另一个线程拥有该互斥量,此函数将不会返回, 直到当前线程获得该互斥量的所有权。

◆ FX_Mutex_TryLock()

FX_BOOL FX_Mutex_TryLock ( FX_MUTEX pMutex)

尝试锁定一个互斥量。

参数
[in]pMutex指向互斥量的指针。必须不能是NULL指针。
返回
true表示给定的互斥量对象锁定成功或当前线程已经拥有该互斥量, false表示另一个线程已经拥有该互斥量或发生其他错误。

◆ FX_Mutex_Unlock()

void FX_Mutex_Unlock ( FX_MUTEX pMutex)

解锁一个互斥量。

参数
[in]pMutex指向互斥量的指针。必须不能是NULL指针。
返回
无。

◆ FX_RWLock_Destroy()

void FX_RWLock_Destroy ( FX_RWLOCK *  pRWLock)

销毁一个读写锁。

参数
[in]pRWLock指向要销毁的读写锁的指针。必须不能是NULL指针。
返回
无。

◆ FX_RWLock_Initialize()

FX_BOOL FX_RWLock_Initialize ( FX_RWLOCK *  pRWLock)

初始化读写锁。

参数
[in]pRWLock指向需要初始化的读写锁的指针。必须不能是NULL指针。
返回
true表示成功,false表示失败。

◆ FX_RWLock_ReadLock()

void FX_RWLock_ReadLock ( FX_RWLOCK *  pRWLock)

锁定以进行共享读取。

参数
[in]pRWLock指向读写锁的指针。必须不能是NULL指针。
返回
无。
注解
如果调用此函数时另一个线程拥有该读写锁,此函数将不会返回, 直到当前线程获得该读写锁的所有权。

◆ FX_RWLock_ReadUnlock()

void FX_RWLock_ReadUnlock ( FX_RWLOCK *  pRWLock)

解锁以进行共享读取。

参数
[in]pRWLock指向读写锁的指针。必须不能是NULL指针。
返回
无。

◆ FX_RWLock_TryReadLock()

FX_BOOL FX_RWLock_TryReadLock ( FX_RWLOCK *  pRWLock)

尝试锁定以进行共享读取。

参数
[in]pRWLock指向读写锁的指针。必须不能是NULL指针。
返回
true表示给定的读写锁对象锁定成功或 当前线程已经拥有该读写锁,false表示另一个线程已经拥有 该读写锁或发生其他错误。

◆ FX_RWLock_TryWriteLock()

FX_BOOL FX_RWLock_TryWriteLock ( FX_RWLOCK *  pRWLock)

尝试锁定以进行独占写入。

参数
[in]pRWLock指向读写锁的指针。必须不能是NULL指针。
返回
true表示给定的读写锁对象锁定成功或 当前线程已经拥有该读写锁,false表示另一个线程已经拥有 该读写锁或发生其他错误。

◆ FX_RWLock_WriteLock()

void FX_RWLock_WriteLock ( FX_RWLOCK *  pRWLock)

锁定以进行独占写入。

参数
[in]pRWLock指向读写锁的指针。必须不能是NULL指针。
返回
无。
注解
如果调用此函数时另一个线程拥有该读写锁,此函数将不会返回, 直到当前线程获得该读写锁的所有权。

◆ FX_RWLock_WriteUnlock()

void FX_RWLock_WriteUnlock ( FX_RWLOCK *  pRWLock)

解锁以进行独占写入。

参数
[in]pRWLock指向读写锁的指针。必须不能是NULL指针。
返回
无。

◆ FX_SpinLock_Destroy()

void FX_SpinLock_Destroy ( FX_SPINLOCK pSpinLock)

销毁一个自旋锁。

参数
[in]pSpinLock指向要销毁的自旋锁的指针。
返回
无。

◆ FX_SpinLock_Initialize()

FX_BOOL FX_SpinLock_Initialize ( FX_SPINLOCK pSpinLock)

初始化自旋锁。

参数
[in]pSpinLock指向要初始化的自旋锁的指针。
返回
true表示成功,false表示失败。

◆ FX_SpinLock_IsLocked()

FX_BOOL FX_SpinLock_IsLocked ( FX_SPINLOCK pSpinLock)

确定指定的自旋锁是否被锁定。

参数
[in]pSpinLock指向自旋锁的指针。
返回
true表示自旋锁被锁定,false表示自旋锁未被锁定。

◆ FX_SpinLock_Lock()

void FX_SpinLock_Lock ( FX_SPINLOCK pSpinLock)

锁定一个自旋锁。

参数
[in]pSpinLock指向自旋锁的指针。
返回
无。
注解
如果调用此函数时另一个线程拥有该自旋锁,此函数将不会返回, 直到当前线程获得该自旋锁的所有权。

◆ FX_SpinLock_TryLock()

FX_BOOL FX_SpinLock_TryLock ( FX_SPINLOCK pSpinLock)

尝试锁定一个自旋锁。

参数
[in]pSpinLock指向自旋锁的指针。
返回
true表示给定的自旋锁对象锁定成功或 当前线程已经拥有该自旋锁,false表示另一个线程已经拥有该自旋锁 或发生其他错误。

◆ FX_SpinLock_Unlock()

void FX_SpinLock_Unlock ( FX_SPINLOCK pSpinLock)

解锁一个自旋锁。

参数
[in]pSpinLock指向自旋锁的指针。
返回
无。

◆ FX_Thread_Create()

FX_HTHREAD FX_Thread_Create ( FX_INT32  nPriority,
size_t  szStack,
FX_CALLBACK_ThreadProc  threadProc,
FX_LPVOID  param 
)

创建一个新线程。

参数
[in]nPriority线程优先级。
[in]szStack线程堆栈大小,设置为0表示使用默认堆栈大小。
[in]threadProc线程回调函数。
[in]param传递给线程过程的参数。
返回
线程句柄。NULL表示失败。

◆ FX_Thread_Exit()

void FX_Thread_Exit ( )

退出当前线程。

返回
无。

◆ FX_Thread_GetContext()

CFX_ThreadContext* FX_Thread_GetContext ( )

获取当前线程上下文。

返回
当前线程上下文。NULL表示失败。

◆ FX_Thread_GetExceptionContext()

CFX_ExceptionContext* FX_Thread_GetExceptionContext ( )

获取当前线程异常上下文。

返回
当前线程异常上下文。NULL表示失败。

◆ FX_Thread_GetHandle()

FX_HTHREAD FX_Thread_GetHandle ( )

获取当前线程句柄。

返回
当前线程句柄,失败时返回NULL。

◆ FX_Thread_GetHandler()

FX_THREADHANDLER* FX_Thread_GetHandler ( )

获取当前线程处理器。

返回
当前线程处理器。NULL表示没有设置线程处理器。
注解
在单线程模式下或_FPDFAPI_MT_未定义时,此函数始终返回NULL

◆ FX_Thread_GetLastError()

FX_INT32 FX_Thread_GetLastError ( )

获取当前线程中的最后错误代码。

返回
最后错误代码。

◆ FX_Thread_GetPriority()

FX_INT32 FX_Thread_GetPriority ( FX_HTHREAD  hThread)

获取线程优先级。

参数
[in]hThread指定要检索其优先级的线程的线程句柄。
返回
线程的优先级代码。

◆ FX_Thread_GetPrivateData()

FX_LPVOID FX_Thread_GetPrivateData ( FX_LPVOID  key)

获取当前线程中的私有数据。

参数
[in]key用于指定要检索的私有数据的键值。
返回
指向私有数据的指针,失败时返回NULL。

◆ FX_Thread_RemovePrivateData()

void FX_Thread_RemovePrivateData ( FX_LPVOID  key)

移除当前线程中的私有数据。

参数
[in]key用于指定要移除的私有数据的键值。
返回
无。

◆ FX_Thread_SetHandler()

void FX_Thread_SetHandler ( FX_THREADHANDLER pThreadHandler)

设置当前线程处理器。

参数
[in]pThreadHandler指向外部线程处理器的指针。
返回
无。
注解
在单线程模式下或_FPDFAPI_MT_未定义时,此函数被禁用。

◆ FX_Thread_SetLastError()

void FX_Thread_SetLastError ( FX_INT32  nErr)

设置当前线程中的最后错误代码。

参数
[in]nErr要设置的最后错误代码。
返回
无。

◆ FX_Thread_SetPriority()

void FX_Thread_SetPriority ( FX_HTHREAD  hThread,
FX_INT32  nPriority 
)

设置线程优先级。

参数
[in]hThread指定要更改其优先级的线程的线程句柄。
[in]nPriority线程优先级代码。
返回
无。

◆ FX_Thread_SetPrivateData()

void FX_Thread_SetPrivateData ( FX_LPVOID  key,
FX_LPVOID  data,
PD_CALLBACK_FREEDATA  callback 
)

设置当前线程中的私有数据。

参数
[in]key用于指定要设置的私有数据的键值。
[in]data指向私有数据的指针。
[in]callback用于释放私有数据的回调函数地址。 如果不需要额外的过程来释放私有数据,则传递NULL
返回
无。

◆ FX_Thread_WaitForMultipleThreads()

FX_INT32 FX_Thread_WaitForMultipleThreads ( const FX_HTHREAD *  pThreads,
FX_INT32  nCount 
)

等待多个线程终止。

参数
[in]pThreads指向线程句柄数组的指针。
[in]nCount数组中线程的数量。
返回
0表示所有线程成功终止,其他值表示失败。

◆ FX_Thread_WaitForSingleThread()

FX_INT32 FX_Thread_WaitForSingleThread ( FX_HTHREAD  hThread)

等待单个线程终止。

参数
[in]hThread指定要等待的线程的线程句柄。
返回
0表示线程成功终止,其他值表示失败。

◆ FX_Thread_Yield()

void FX_Thread_Yield ( )

将处理器让出给另一个线程。

返回
无。