Мне нужно прослушать все последовательные порты на моей машине. Скажем, если у моей машины 4 последовательных порта, мне нужно создать 4 потока и начать слушать каждый порт с подключенным потоком соответственно.
Я использовал этот код, чтобы получить количество портов в моей машине ..
private SerialPort comPort = new SerialPort();
public void GetAllPortNamesAvailable()
{
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
//How to start a thread here ??
}
}
public void AssignThreadtoPort()
{
string msg = comPort.ReadLine();
this.GetMessageRichTextBox("Message : " + msg + "\n");
}
После прочтения комментариев я использую этот код, но не получаю сообщения .. в чем проблема?
public void AssignThreadsToPorts()
{
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
SerialPort sp = new SerialPort();
sp.PortName = port;
sp.Open();
new Thread(() =>
{
if (sp.IsOpen)
{
string str = sp.ReadLine().ToString();
MessageBox.Show(str);
}
}).Start();
}
}