C# 串口读取导致应用程序冻结一段时间-我需要线程吗?
我用c#编写了一些代码,用于读取AT命令兼容调制解调器的结果。 如果我开始读取COM端口,整个应用程序将冻结,直到收到数据。我想我应该使用线程,但我不知道如何使用C# 串口读取导致应用程序冻结一段时间-我需要线程吗?,c#,multithreading,serial-port,C#,Multithreading,Serial Port,我用c#编写了一些代码,用于读取AT命令兼容调制解调器的结果。 如果我开始读取COM端口,整个应用程序将冻结,直到收到数据。我想我应该使用线程,但我不知道如何使用 if (!serialPort1.IsOpen) serialPort1.Open(); serialPort1.WriteTimeout = 5000; serialPort1.NewLine = "\r\n"; serialPort1.Writ
if (!serialPort1.IsOpen)
serialPort1.Open();
serialPort1.WriteTimeout = 5000;
serialPort1.NewLine = "\r\n";
serialPort1.WriteLine("AT#MON");
serialPort1.NewLine = "\r\n";
while (true) // Loop indefinitely
{
serialPort1.NewLine = "\r\n"; // Prompt
string linee = serialPort1.ReadLine(); // Get string from port
if (System.Text.RegularExpressions.Regex.IsMatch(linee, ("^xcqa:")))
{
textBox1.AppendText(System.Environment.NewLine);
}
if (System.Text.RegularExpressions.Regex.IsMatch(linee, ("^fkss:")))
{
textBox1.AppendText(System.Environment.NewLine);
}
if (System.Text.RegularExpressions.Regex.IsMatch(linee, ("ended"))) // Check string
{
break;
}
textBox1.AppendText(linee);
}
对。您需要使用多线程。生成一个新线程将允许应用程序中的其他代码同时进行。为此,串行端口读取代码需要自己的线程。阅读C#的多线程文档
是的。您需要使用多线程。生成一个新线程将允许应用程序中的其他代码同时进行。为此,串行端口读取代码需要自己的线程。阅读C#的多线程文档