Добрый день, программа работает с raspberry pi pico по COM порту, для его поиска я в цикле посылаю на каждый порт сообщения и где мне ответили в нужном формате тот и мой.
Вопрос: если обходить порты по порядку в цикле то программа при старте "подвисает" (секунд на 20) пока дойдет до нужного порта, попробовал через потоки, вот так:
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
Thread t = new Thread(TestSerialPort);
t.Start(port);
if (!t.Join(TimeSpan.FromSeconds(1)))
{
t.Abort();
throw new Exception("More than 1 secs.");
}
}
но тут опять проблема программа не дожидается когда найдется порт, я так понял из-за распараллеливания. Возможно как то дождаться пока не выполнятся все потоки?
И еще вопрос, а работа с COM портами всегда подразумевает что после отправки нужно подождать типа Thread.Sleep(500);?