理论教育 VegaPrime虚拟现实技术:数据辅助线程设计

VegaPrime虚拟现实技术:数据辅助线程设计

时间:2023-11-25 理论教育 版权反馈
【摘要】:图9.12.1数据辅助线程设计使用整个设计中,设计了一个静态函数autoRun 作为数据辅助线程的函数,使汽车自动往X正向增加;设计了一个布尔变量autoRunBool 来控制线程循环体的执行;设计了一个线程控制对象pThread,从而实现线程的开始运行、暂停、继续执行和结束操作。启动数据辅助线程:CVPTestDialogDlg::autoRunBool=true;pThread=AfxBeginThread;其中,在启动线程时,AfxBeginThread 函数的返回值赋予了pThread,以便于控制数据线程。运行效果如图9.12.2所示。

VegaPrime虚拟现实技术:数据辅助线程设计

利用线程相关知识设计了一个数据辅助线程,其完整代码如图9.12.1所示。

图9.12.1 数据辅助线程设计使用

整个设计中,设计了一个静态函数autoRun 作为数据辅助线程的函数,使汽车自动往X正向增加;设计了一个布尔变量autoRunBool 来控制线程循环体的执行;设计了一个线程控制对象pThread,从而实现线程的开始运行、暂停、继续执行和结束操作。

(1)启动数据辅助线程:

CVPTestDialogDlg::autoRunBool=true;

pThread=AfxBeginThread(CVPTestDialogDlg::autoRun,this);

其中,在启动线程时,AfxBeginThread 函数的返回值赋予了pThread,以便于控制数据线程。

(2)关闭线程:

//CVPTestDialogDlg::autoRunBool=false;

TerminateThread(pThread->m_hThread,1);

CloseHandle(pThread->m_hThread);(www.daowen.com)

其中,给布尔变量赋false 值的方式,使线程循环体执行完当次循环后,自动退出循环,结束线程。而后面两句则是不论线程函数执行到哪里,都会执行线程,强行结束操作。

(3)暂停线程:

pThread->SuspendThread();

暂停操作是不论线程函数执行到哪里,都会暂停线程函数的执行,保留在当前状态。

(4)继续执行线程:

pThread->ResumeThread();

继续执行线程操作则是从线程函数最新暂停的位置继续执行操作。

运行效果如图9.12.2所示。

图9.12.2 数据辅助线程效果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈