お世話になっております。 シリアル通信からくるデータを常に受信できるようにしたいと思っています。 そこで、下記のような感じで記述したのですが、起動中にデータを受信しなが ら、Form1の操作をしていると "スレッド '<名前がありません>' (0x8a8) はコード 0 (0x0) で終了しました。" と出力ウィンドウにでてシリアル通信での受信がで出来なくなってしまいます。 どのようにすればシリアル通信を受信しながら、Form1で操作できるのでしょうか? アドバイス等よろしくお願いします。 ------------------------------------ 【Form1】 namespace Sample_SerialThread { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Serial serial = new Serial(); serial.Activate(); /*-------------------------------------------------------- * 下記のように別スレッドで起動させようともしたのですが、 * " ??? "の箇所でどのメソッドを呼べばコンパイルがとおる * のかが分かりませんでした。。。 *--------------------------------------------------------*/ //serial_thread = new Thread(new Thread(/*???*/)); //serial_thread.IsBackground = true; //serial_thread.Start(); } private void button1_Click(object sender, EventArgs e) { richTextBox1.AppendText("TEST\r\n"); } } } 【Serial】 namespace Sample_SerialThread { public partial class Serial : Form { public Serial() { InitializeComponent(); serialPort1.Open(); } private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { string data = serialPort1.ReadExisting(); Console.WriteLine(data); } } }
分類:[.NET]