У меня 2 GUI приложения, одно на C ++ и одно на C#. Приложения одинаковы, и есть функция, которая пишет и читает из COM-порта. Когда я запускаю свое приложение C ++, я получаю правильный результат от Serial.Read, который является буфером с 24 байтами. Но когда я запускаю свое приложение C#, я получаю неровные результаты: * Просто 1-байтовый буфер, если я не помещаю сон между записью и чтением. * Различных размеров, если я помещаю сон между записью и чтением (между 10-22 байтами).
Что может быть причиной этого?
Мой код C ++:
serial.write(&c, 1, &written);
serial.read(read_buf, read_len, &received); // received = 24
Мой C# код:
serial.Write(temp_char, 0, 1);
received = serial.Read(read_buff, 0,read_len); // received = 1
C# со сном:
serial.Write(temp_char, 0, 1);
Thread.Sleep(100);
received = serial.Read(read_buff, 0,read_len); // received = (10~22)