Chcę odczytać mój port szeregowy, ale tylko wtedy, gdy nadchodzą dane (nie chcę odpytywać).C# tylko do odczytu Port szeregowy, gdy dane przychodzą
Tak to robię.
Schnittstelle = new SerialPort("COM3");
Schnittstelle.BaudRate = 115200;
Schnittstelle.DataBits = 8;
Schnittstelle.StopBits = StopBits.Two;
....
I wtedy rozpocząć wątek
beginn = new Thread(readCom);
beginn.Start();
iw moim READCOM Czytam ciągłą (odpytywanie :()
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);
}
}
Chcę yout czytać, gdy nadchodzi przerwań Ale jak mogę to zrobić?
Ten przykładowy kod nie jest już bezpieczny w programie .NET 4.5. Console.ReadKey() nabywa blokadę, która uniemożliwia programowi Console.Write() zapisanie czegokolwiek. Debug.Print() jest w porządku. –
Będę edytować to! Dzięki! –
@HansPassant dzięki za to. To musiało zepsuć wiele przykładów wątków na MSDN :) – kenny