c#串口返回数据延迟(硬件引起的)

private void Comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int n = comm.BytesToRead;
int m = comm.BytesToWrite;
byte[] buf = new byte[n];
comm.Read(buf, 0, n);
builder.Clear();
this.Invoke((EventHandler)(delegate
{
builder.Append(Encoding.ASCII.GetString(buf));

}));
}

流程:1发指令,2接收数据,3做出判断,4下一个指令。。。

当我发这个指令(暂时叫T1)后,DataReceived那里,差不多3s后才收到数据,但间隔3s这段时间内又开始发下一条指令了(指令是连续发的),然后DataReceived又收到新的数据,这导致我在后面的各种判断出错了。
怎么处理这样的情况?

PS: 1 跟硬件工程师确认过,发完T1这个指令,数据的接收确实会延迟.
2 用串口工具发T1这个指令,数据接收也会延迟.

我不太懂你这个,但是可以借鉴一下mpi里面进程间非阻塞传输数据的思想,接受端要确认接收数据的先后顺序,才会执行。或者使用阻塞发送。希望可以帮到你。