【运动控制】创建线程执行缓冲区
来源:互联网 发布:mac 解压缩命令 编辑:程序博客网 时间:2024/06/16 00:22
//------CAD线程数据------//typedef struct _HXThreadDataInfo{BOOL bThreadRun;BOOL bThreadCAD1;BOOL bThreadCAD2;BOOL bThreadCAD3;BOOL bThreadCAD4;unsigned long ulDeepA1; //深度A1--D80unsigned long ulDeepB1; //深度B1--D82unsigned long ulDeepA2; //深度A2--D84unsigned long ulDeepB2; //深度B2--D86}HXThreadDataInfo;HXThreadDataInfo* pHXDataInfo;//声明线程函数LPTHREAD_START_ROUTINE HXCADProc(LPVOID pParam);
//--------开辟线程----------//if ( pHXDataInfo->bThreadRun == FALSE ){if ( pHXDataInfo->bThreadCAD1 == TRUE || pHXDataInfo->bThreadCAD2 == TRUE || pHXDataInfo->bThreadCAD3 == TRUE || pHXDataInfo->bThreadCAD4 == TRUE ){unsigned long ulAxisSts0;unsigned long ulAxisSts1;rtn = PMC_Get_Execute_Axis(&ulAxisSts0,0);//判断缓冲区是否完成rtn = PMC_Get_Execute_Axis(&ulAxisSts1,1);//判断缓冲区是否完成if (0 != (ulAxisSts0 & 0x1<<0) || 0 != (ulAxisSts0 & 0x1<<1) || 0 != (ulAxisSts0 & 0x1<<2)){pHXDataInfo->bThreadCAD1 = FALSE;}if (0 != (ulAxisSts0 & 0x1<<3) || 0 != (ulAxisSts0 & 0x1<<4) || 0 != (ulAxisSts0 & 0x1<<5)){pHXDataInfo->bThreadCAD2 = FALSE;}if (0 != (ulAxisSts1 & 0x1<<0) || 0 != (ulAxisSts1 & 0x1<<1) || 0 != (ulAxisSts1 & 0x1<<2)){pHXDataInfo->bThreadCAD3 = FALSE;}if (0 != (ulAxisSts1 & 0x1<<3) || 0 != (ulAxisSts1 & 0x1<<4) || 0 != (ulAxisSts1 & 0x1<<5)){pHXDataInfo->bThreadCAD4 = FALSE;}unsigned long threadID;HANDLE hTread;hTread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)HXCADProc,(LPVOID)pHXDataInfo,CREATE_SUSPENDED,&threadID);if(hTread == NULL){delete pHXDataInfo;return 1;}pHXDataInfo->bThreadRun = TRUE;ResumeThread(hTread);}}
LPTHREAD_START_ROUTINE HXCADProc(LPVOID pParam){HXThreadDataInfo* pHXDataInfo = (HXThreadDataInfo*)pParam;BOOL bOpenCAD1 = pHXDataInfo->bThreadCAD1;BOOL bOpenCAD2 = pHXDataInfo->bThreadCAD2;BOOL bOpenCAD3 = pHXDataInfo->bThreadCAD3;BOOL bOpenCAD4 = pHXDataInfo->bThreadCAD4;//---------------rtn = PMC_End_Buffer(&num,CardNum);rtn = PMC_Execute_Buffer(0,0,1);bFinishCAD3 = TRUE;Sleep(1);//-----------------_endthread();delete pHXDataInfo;return 0;}
CreateThread和_beginthread区别及使用
关于_beginthreadex、_beginthread和CreateThread
0 0
- 【运动控制】创建线程执行缓冲区
- 控制线程顺序执行
- 线程创建与控制
- CountDownLatch控制线程执行顺序
- 控制线程的执行顺序
- 3.1 创建线程执行器
- Android 创建线程执行任务
- linux 线程创建与执行
- Thread执行控制和线程死锁
- java 中线程执行顺序控制
- java 中线程执行顺序控制
- 如何控制线程执行的先后顺序
- java 中线程执行顺序控制
- join控制线程的执行顺序
- java 多线程控制线程执行顺序
- Java--线程的先后执行顺序控制
- java中线程执行顺序控制
- java中线程执行顺序控制
- php奇偶数循环
- 实习面经--阿里 java研发 v1
- 同一个表单,提交不同的action,使用formaction属性
- ICON小图标
- hdu2042 不容易系列之二 (送分题)
- 【运动控制】创建线程执行缓冲区
- 解决android 关于Toast重复显示解决方法
- 大数据量数据存储分表实例(企业级应用系统)附原码
- POJ 2718:Smallest Difference(dfs)
- 51nod-1225-余数求和(分块)
- 图像局部特征点检测算法综述
- 关于Linux LOOPBACK网口抓包的一个细节
- Ubuntu创建应用程序桌面图标
- 面试题18