[問題] serial port中BreakState的問題
我現在在做用serial port傳送接收的程式
並且要監測現在是否在接收狀態中
但程式執行到判斷BreakState是否為true的時候就卡住了
網路上幾乎找不到相關範例
想請問一下這個BreakState該如何使用?
我在嘗試的簡單程式碼如下
一開始顯示3,判斷BreakState是否為true,是的話顯示2,否則顯示1,做完這些判斷
之後顯示4。可是結果一直都是3,不知道是卡在哪裡?
comport = new SerialPort("COM12", 1000000, Parity.None, 8, StopBits.One);
textBox1.Text = "3";
if (comport.BreakState)
{
textBox1.Text = "2";
}
else
{
textBox1.Text = "1";
}
textBox1.Text = "4";
希望有強者可以幫忙看一下,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.17.251
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1431444061.A.1A9.html
推
05/13 05:38, , 1F
05/13 05:38, 1F
謝謝,有加了,後來還找到個要加Thread的方法就不會卡在if判別不動了
tProf = new Thread(ReceiveProf);
tProf.IsBackground = true;
tProf.Start();
但是在傳輸接收檔案時if (comport.BreakState)一直判定false(沒有中斷)
即使我把線拔掉他還是顯示false
while (receiving)
{
Byte[] buffer = new Byte[1024];
Int32 length = comport.Read(buffer, 0, buffer.Length);
Array.Resize(ref buffer, length);
fsOut.Write(buffer, 0, length);
if (comport.BreakState)
{
text = "2";
}
else
{
text = "1";
}
Display d = new Display(DisplayText);
this.Invoke(d, new Object[] { text });
}
textbox一直顯示1,怎麼拔都不會變2
※ 編輯: tom2911138 (140.112.17.251), 05/13/2015 11:45:33
→
05/25 23:45, , 2F
05/25 23:45, 2F
→
05/25 23:46, , 3F
05/25 23:46, 3F
→
05/25 23:48, , 4F
05/25 23:48, 4F
→
05/30 15:17, , 5F
05/30 15:17, 5F
→
05/30 15:18, , 6F
05/30 15:18, 6F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章