Tôi muốn đọc cổng nối tiếp nhưng chỉ khi dữ liệu đến (tôi không muốn bỏ phiếu).C# chỉ đọc Cổng nối tiếp khi dữ liệu đến
Đây là cách tôi thực hiện.
Schnittstelle = new SerialPort("COM3");
Schnittstelle.BaudRate = 115200;
Schnittstelle.DataBits = 8;
Schnittstelle.StopBits = StopBits.Two;
....
Và sau đó tôi bắt đầu một thread
beginn = new Thread(readCom);
beginn.Start();
và trong tôi readCom Tôi đang đọc liên tục (polling :()
private void readCom()
{
try
{
while (Schnittstelle.IsOpen)
{
Dispatcher.BeginInvoke(new Action(() =>
{
ComWindow.txtbCom.Text = ComWindow.txtbCom.Text + Environment.NewLine + Schnittstelle.ReadExisting();
ComWindow.txtbCom.ScrollToEnd();
}));
beginn.Join(10);
}
}
catch (ThreadAbortException)
{
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Tôi muốn yout đọc khi một ngắt đang đến Nhưng làm thế nào tôi có thể làm điều đó?
Mã mẫu này không còn an toàn để sử dụng trong .NET 4.5. Console.ReadKey() mua lại một khóa ngăn Console.Write() viết bất cứ thứ gì. Debug.Print() là không sao. –
Tôi sẽ chỉnh sửa nội dung này! Cảm ơn! –
@HansPassant cảm ơn vì điều đó. Điều đó chắc chắn đã phá vỡ nhiều ví dụ về luồng trên MSDN :) – kenny