UnReal中建立线程
来源:互联网 发布:算法的效率只与 编辑:程序博客网 时间:2024/05/16 12:33
在 .h 文件中添加如下内容
在 .cpp文件中添加如下内容
MultiThreading* MultiThreading::Runnable = NULL;MultiThreading::MultiThreading(float& EyePoint_X, float& EyePoint_Y, int& EyePoint_C){//Link to where data should be storeda = &EyePoint_X;b = &EyePoint_Y;c = &EyePoint_C;Thread = FRunnableThread::Create(this, TEXT("FEyeTracking"), 0, TPri_BelowNormal); //windows default = 8mb for thread, could specify more}MultiThreading::~MultiThreading(){delete Thread;Thread = NULL;}bool MultiThreading::Init(){//Init the Data if (successed){return true;}return false;}uint32 MultiThreading::Run(){//Initial wait before startingFPlatformProcess::Sleep(0.03);GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, FString::Printf(TEXT("执行需要的程序! %d"), cc));return 1;}void MultiThreading::Stop(){StopTaskCounter.Increment();}MultiThreading* MultiThreading::JoyInit(float& aa, float& bb, int& cc){if (!Runnable && FPlatformProcess::SupportsMultithreading()){Runnable = new MultiThreading(a, b, c);}return Runnable;}void MultiThreading::EnsureCompletion(){Stop();Thread->WaitForCompletion();}void MultiThreading::Shutdown(){if (Runnable){Runnable->EnsureCompletion();delete Runnable;Runnable = NULL;}}bool MultiThreading::IsThreadFinished(){if (Runnable) return Runnable->IsFinished();return true;}FEyeTrackingWorker* FEyeTrackingWorker::Runnable = NULL;FEyeTrackingWorker::FEyeTrackingWorker(float& EyePoint_X, float& EyePoint_Y, int& EyePoint_C){//Link to where data should be storedaa = &EyePoint_X;bb = &EyePoint_Y;cc = &EyePoint_C;Thread = FRunnableThread::Create(this, TEXT("FEyeTracking"), 0, TPri_BelowNormal); //windows default = 8mb for thread, could specify more}FEyeTrackingWorker::~FEyeTrackingWorker(){delete Thread;Thread = NULL;}bool FEyeTrackingWorker::Init(){//Init the Data HINSTANCE hDllInst = NULL;FString funcname = "gazeCalculation";hDllInst = LoadLibrary(TEXT("D:/sunjiankang/UE/dll/CreateAndLinkDLLTutSol - sjk/x64/Debug/CreateAndLinkDLLTut.dll"));if (hDllInst){GazeFromDll = (GazeFunc)FPlatformProcess::GetDllExport(hDllInst, *funcname);if (GazeFromDll){return true;}}return false;}uint32 FEyeTrackingWorker::Run(){//Initial wait before startingFPlatformProcess::Sleep(0.03);GazeFromDll(aa, bb, cc);//GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, FString::Printf(TEXT("GazeFromDll! %d"), cc));return 1;}void FEyeTrackingWorker::Stop(){StopTaskCounter.Increment();}FEyeTrackingWorker* FEyeTrackingWorker::JoyInit(float& aa, float& bb, int& cc){if (!Runnable && FPlatformProcess::SupportsMultithreading()){Runnable = new FEyeTrackingWorker(aa, bb, cc);}return Runnable;}void FEyeTrackingWorker::EnsureCompletion(){Stop();Thread->WaitForCompletion();}void FEyeTrackingWorker::Shutdown(){if (Runnable){Runnable->EnsureCompletion();delete Runnable;Runnable = NULL;}}bool FEyeTrackingWorker::IsThreadFinished(){if (Runnable) return Runnable->IsFinished();return true;}empty
阅读全文
0 0
- UnReal中建立线程
- android中快速建立线程
- 线程中建立新线程,退出机制
- unreal
- Unreal中Input的设定
- Unreal Editor中调用exe
- 在其它进程中建立线程
- 在其它进程中建立线程
- 在其它进程中建立线程
- Unreal 中 Actor与Pawn的区别
- 在Unreal中写一段文字HUD
- Unreal中代码添加一个触发器
- iOS中NSThread子线程需要建立NSAutoreleasePool
- delphi线程中建立window切换输入引起的冻结
- 建立线程监视
- MFC 快速建立线程
- ExecutorService建立线程池
- 两个线程建立连接
- 表的操作
- CYGNUM_LWIP_TCP_MSS
- javaseday38补充(下拉菜单改变字体颜色 级联菜单制作删除 删除附件)
- 蜜拓蜜商城软件开发
- HTML DOM 方法综合实例
- UnReal中建立线程
- 调试nuttx堆栈崩溃问题
- 文件上传和下载
- Hive安装
- 9、IP选路
- Happy Matt Friends HDU
- html5 唤起app
- QML 进阶---在项目中遇到的那些坑
- 使用electron+deeplearnjs构建深度学习环境