0

こんにちは、シリアル ポートを使用してデバイスを操作するアプリケーションを作成しています。私はコードを書きましたが、ブレークポイントを配置すると正常に動作しますが、ブレークポイントを使用せずにデバッグすると、期待されるデータは部分ごとになります。たとえば、ブレークポイントを配置してポートから読み取ると、正しいデータは "ali" になりますが、ブレークポイントを削除すると、データは "a" ,"li" になります。port から読み書きするためのスニペット コードは次のとおりです。

 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);

エンコーディングが原因で時間が無駄になっていると思います。これは、説明したブレークポイントの影響を説明しています。

私の解決策は、2 つの連続した read または write に遅延を入れることです。私は正しいですか?はいの場合、どうすればそれを実装できますか? より良い方法はありますか?

4

1 に答える 1