|
我在CVI用多线程,用的是Thread safe Queue方法;CmtInstallTSQCallback (tsqHandle,EVENT_TSQ_ITEMS_IN_QUEUE, MAX_ITEMS_IN_QUEUE_BLOCK,ProcessFunction ,0, CmtGetCurrentThreadID(),& rocessFunctionID );用来安装采集线程采到一定量数据时启动处理函数
CmtScheduleThreadPoolFunctionAdv (DEFAULT_THREAD_POOL_HANDLE,
AcquireDataThreadFunction,NULL , THREAD_PRIORITY_NORMAL,
TSQDataAcquisitionCleanupCallback,EVENT_TP_THREAD_FUNCTION_END, NULL,
CmtGetCurrentThreadID(), &threadFunctionID);用来启动采集线程
在采到我要的数据后我不再接收和处理数据了也想在TSQDataAcquisitionCleanupCallback函数通过CmtDiscardTSQ (tsqHandle)来终止采集线程,可是没用;采集线程只有采满足数据安全队列后才停,不知有什么办法能让其终止呀! |
|