【运动控制】创建线程执行缓冲区

来源:互联网 发布: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
原创粉丝点击