嗨,我正在编写一个应用程序来使用串行端口与设备一起工作。我已经编写了代码,当我放置断点时它工作正常,但是当我在没有断点的情况下调试它时,预期的数据是部分的。例如,当我放置断点并从端口读取时,正确的数据是 "ali" 但是当我删除断点时,数据将是 "a" ,"li" 。这是我用于从端口写入和读取的代码段:
fname1 = Encoding.Default.GetBytes("write1" + dataRow[0].ToString());
comport.Write(fname1,0,fname1.Length);
lname1 = Encoding.Default.GetBytes("write4" + dataRow[1].ToString());
comport.Write(lname1, 0, lname1.Length);
c3 = Encoding.Default.GetBytes("read" +0x1);
comport.Write(c3,0,c3.Length);
comport.Read(fname1, 0, fname1.Length);
string s = Encoding.Default.GetString(fname1);
MessageBox.Show(s);
我假设因为我有编码,所以浪费了一些时间,这解释了我描述的断点的影响。
我的解决方案是将延迟放在两个连续的 read 或 write 中。我对么 ?如果是,我该如何实施?有没有更好的办法?