C#でマルチスレッドのシリアル通信を実現する方法は何ですか?

C#でのマルチスレッドシリアル通信の実装には、System.IO.Ports名前空間のSerialPortクラスを使用します。

最初に、SerialPortオブジェクトを作成し、ボーレート、データビット、ストップビット、パリティなどのシリアルポート関連のプロパティを設定します。

using System.IO.Ports;

SerialPort serialPort = new SerialPort();
serialPort.PortName = "COM1"; // 设置串口名称
serialPort.BaudRate = 9600; // 设置波特率
serialPort.DataBits = 8; // 设置数据位
serialPort.StopBits = StopBits.One; // 设置停止位
serialPort.Parity = Parity.None; // 设置校验位

その後、シリアルデータの読み取りと書き込みを処理するスレッド関数を作成します。このスレッド関数では、SerialPortオブジェクトのReadLine()およびWrite()メソッドを使用してデータの読み取りと書き込みを行うことができます。

void SerialThreadFunc()
{
    while (true)
    {
        if (serialPort.IsOpen)
        {
            // 读取串口数据
            string data = serialPort.ReadLine();
            Console.WriteLine("Received data: " + data);

            // 写入串口数据
            serialPort.Write("Hello, SerialPort!");
        }
    }
}

最後、新しいスレッドを作成し、そのスレッドでシリアル通信を開始します。

Thread serialThread = new Thread(SerialThreadFunc);
serialThread.Start();

上記手順に従うことで、マルチスレッドシリアル通信を実現することができます。メインスレッドでは、SerialPortオブジェクトの関連メソッドを使用してデータをシリアルポートに送信することができます。シリアルポートスレッドでは、ReadLine()メソッドを使用してシリアルデータを読み取ることができます。

bannerAds