AfxBeginThread 的使用方法参数介绍

用户界面线程和工作者线程都是由AfxBeginThread创建的,MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一个用于工作者线程。

用户界面线程的AfxBeginThread:

CWinThread* AFXAPI AfxBeginThread(

                                                                 AFX_THREADPROC pfnThreadProc,

                                                                 LPVOID pParam,

                                                                 int nPriority,

                                                                 UINT nStackSize,

                                                                 DWORD dwCreateFlags,
                                                                 LPSECURITY_ATTRIBUTES lpSecurityAttrs= NULL

                                                                 )

1.第1个参数AFX_THREADPROC pfnThreadProc为线程调用函数名称。AFX说明是个全局函数,为了方便以后定义的时候,直接定义为static UINT jisuan(LPVOID lpParam)静态函数就行。

2. 第2个参数参数LPVOID pParam,是一个void类型的参数。在创建一个线程的时候,你可以传进去一个量,然后在UINT CThreadDlg::jisuan(LPVOID lpParam)函数中取出来。最常用的用法就是,当你想用到窗口类的时候,可以将窗口类的句柄传过去。方法如下:先获取窗口句柄CWnd *pParam=AfxGetMainWnd(),然后AfxBeginThread作为第二个参数传过去。在线程函数中强制类型转换CThreadDlg *pThreadDlg=(CThreadDlg *)lpParam就能操作窗口类的变量、控件等等了
3.第3个参数nPriority工作线程优先级:

idle (最低)

THREAD_PRIORITY_IDLE

如果进程优先级为realtime则调整为16,其它情况为1

LOWEST 低

THREAD_PRIORITY_LOWEST

-2(在原有基础上-2)

BELOW 低于标准

THREAD_PRIORITY_BELOW_NORMAL

-1(在原有基础上-1)

NORMAL(标准)

THREAD_PRIORITY_NORMAL

不变(取进程优先级值)

ABOVE 高于标准

THREAD_PRIORITY_ABOVE_NORMAL

+1(在原有基础上+1)

HIGHEST (高)

THREAD_PRIORITY_HIGHEST

+2(在原有基础上+2)

CRITICAL(最高)

THREAD_PRIORITY_TIME_CRITICAL

如果进程优先级为realtime则调整为31,其它情况为15

4.第4个参数nStackSize:  以字节为单位指定新线程的堆栈大小。如果为0,则与创建它的线程的堆栈大小相同。

5.第5个参数dwCreateFlags:指定一个额外的标志控制线程的产生。它可以包括下面两个值中的个:CREATE_SUSPENDED:以挂起模式开始线程,并且指定挂起次数.当调用ResumeThread时,这个线程才会被执行。0 :创建之后,马上执行线程。

6.第6个参数lpSecurityAttrs 默认为null就行。

创建线程后,如果成功则会返回CWinThread* pThread的变量。这个变量可用于对线程的控制,如果要暂停线程:pThread->SuspendThread();如果要继续线程pThread->ResumeThread();

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值