NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

多线程问题

你好,我在labwindows8.5.0下用到了多线程技术, 

我的问题描述如下:

1 创建线程

   CmtNewThreadPool (1, &poolHandle);
  //创建线程
  CmtScheduleThreadPoolFunction (poolHandle, Open_Init, 0, &threadID);

2 主线程休眠10s

for(i=0;i<1000;i++)
  {
   Sleep(10);
  }
然后我在辅助线成Open_init中设定标志位,如果主线程醒来后,标志位是错误的,则杀死这个线程。

3 子线程

int CVICALLBACK Open_Init(void *functionData)
{
 
 flag_th=0;
 init_flag=OpenUnit(&handle);  
 flag_th=1;
 return flag_th;
}

由于在OpenUnit过程中,函数可能会死掉。所以主线程等待10后判断flag_th标志。

4 我是用   CmtDiscardThreadPool (poolHandle); 来杀死线程,可是杀不死。请问该怎样修改?我的邮箱:yqh_buaa@asee.buaa.edu.cn

0 项奖励
1 条消息(共 2 条)
3,750 次查看

学习一下,非常感谢。

 

0 项奖励
2 条消息(共 2 条)
3,461 次查看