H
huanghuang612
Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在写一个串口通讯程序,采用SPCOMM控件,通过其的OnReceiveData事件来接收
串口的数据,
procedure TFrmMain.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
begin
SetLength(RecStr,BufferLength);
move(buffer^,pchar(@RecStr[1])^,bufferlength);
ProcessRecStr(RecStr);
//自定义的处理函数
end;
现在出现的问题如下:下位机往串口发送的频率为100次/秒,而完整处理一次
ProcessRecStr(RecStr)过程需要40毫秒,这样导致系统处于类似死机的繁忙状态,请
问该怎么进行多线程来做处理.以前没做过线程处理,不熟悉,请各位赐教.
串口的数据,
procedure TFrmMain.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
begin
SetLength(RecStr,BufferLength);
move(buffer^,pchar(@RecStr[1])^,bufferlength);
ProcessRecStr(RecStr);
//自定义的处理函数
end;
现在出现的问题如下:下位机往串口发送的频率为100次/秒,而完整处理一次
ProcessRecStr(RecStr)过程需要40毫秒,这样导致系统处于类似死机的繁忙状态,请
问该怎么进行多线程来做处理.以前没做过线程处理,不熟悉,请各位赐教.