[英]Timer and serial port in c#?
我正在使用RFID設備讀取數據。 從它接收數據后,我在Visual Studio 2008中使用它。我使用串行端口和計時器的data-receive事件獲取數據。
問題是當我獲取RFID數據並嘗試將其放在數據接收事件的文本字段中時。
持續獲取數據,因為計時器不斷檢查數據並將其放在文本框中。 這就是為什么我的后端查詢始終運行並連續插入相同數據的原因。 我想停止計時器和串行端口,然后再次打開串行而不關閉並再次打開表單。 除了定時器,還有其他方法可以從串行端口獲取數據,並且在獲取數據后它會自行停止。
這是我的代碼:
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
//Serialtimer.Start();
if (sp.IsOpen)
{
data = sp.ReadExisting();
RFIDtB.Text = data;
}
else
{
MessageBox.Show("Please Check the device");
}
}
您不能從UI線程以外的其他線程訪問表單控件。 請參閱本文: http : //msdn.microsoft.com/zh-cn/library/ms171728.aspx以獲取解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.