AfxBeginThread创建线程并指定优先级

AfxBeginThread

CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, intnPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags= 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );

CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );

CWinThread *m_pThread = AfxBeginThread(ThreadTest,0,THREAD_PRIORITY_HIGHEST,0,NULL);//调用测试线程

当线程弹出一个对话框再做相关操作时有可能会卡死的情况,这时我们可以在创建线程时调整一个线程的优先级,或者使用SetThreadPriority指定优先级。

BOOL  SetThreadPriority(
HANDLE hThread, // handle to the thread
int nPriority // thread priority level
);
功能说明
设置指定线程的优先级
参数说明
 
线程优先级等级
标志
优先级值
1
idle (最低)
THREAD_PRIORITY_IDLE
如果进程优先级为realtime则调整为16,其它情况为1
2
LOWEST 低
THREAD_PRIORITY_LOWEST
-2(在原有基础上-2)
3
BELOW 低于标准
THREAD_PRIORITY_BELOW_NORMAL
-1(在原有基础上-1)
4
NORMAL(标准)
THREAD_PRIORITY_NORMAL
不变(取进程优先级值)
5
ABOVE 高于标准
THREAD_PRIORITY_ABOVE_NORMAL
+1(在原有基础上+1)
6
HIGHEST (高)
THREAD_PRIORITY_HIGHEST
+2(在原有基础上+2)
7
CRITICAL(最高)
THREAD_PRIORITY_TIME_CRITICAL
如果进程优先级为realtime则调整为31,其它情况为15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值