W
wben
Unregistered / Unconfirmed
GUEST, unregistred user!
通过A/D板(不带缓存)进行数据采集,采样频率为1、2、5K时进行连续采样,并动态实时图形显示。我采用两个线程:一个采集数据,一个显示图形,怎样使得采集一定数量的数据后再调用显示图形线程,并保证数据没有丢失?
开始采集:
hMutex:=Createsemaphore(nil,1,1,nil);//创建互斥量
DataCollectThread := TDataCollectThread.Create(true);
// 创建线程进行数据采集和显示
DataCollectThread.Resume;
DataShowThread := TDataShowThread.Create(true);
// 创建线程进行数据采集和显示
DataShowThread.Resume;
采集线程:
while not Terminateddo
// 当线程没有被停止
if WaitForSingleObject(hMutex1,INFINITE)=WAIT_OBJECT_0 then
//防止其他线程进入同步区域
begin
采集一定数量的数据及相关处理
end;
ReleaseSemaphore(hmutex,1,nil);
图形显示线程:
while not Terminateddo
// 等待数据采集一批数据完成
begin
图形显示
end;
出现问题:数据采集没有完成就开始画图
开始采集:
hMutex:=Createsemaphore(nil,1,1,nil);//创建互斥量
DataCollectThread := TDataCollectThread.Create(true);
// 创建线程进行数据采集和显示
DataCollectThread.Resume;
DataShowThread := TDataShowThread.Create(true);
// 创建线程进行数据采集和显示
DataShowThread.Resume;
采集线程:
while not Terminateddo
// 当线程没有被停止
if WaitForSingleObject(hMutex1,INFINITE)=WAIT_OBJECT_0 then
//防止其他线程进入同步区域
begin
采集一定数量的数据及相关处理
end;
ReleaseSemaphore(hmutex,1,nil);
图形显示线程:
while not Terminateddo
// 等待数据采集一批数据完成
begin
图形显示
end;
出现问题:数据采集没有完成就开始画图