기존 응용 프로그램을 Borland C++에서 .NET으로 이식 중입니다. 응용 프로그램은 동시에 4 COM 포트를 처리하기 때문에 동기화해야하므로 한 포트가 데이터를 수신하는 동안 나머지 세 포트는 수신 버퍼의 모든 데이터를 읽을 때까지 차단됩니다.C# 다중 COM 포트 동기화
요구 사항은 새 버전이 이전 버전과 똑같은 방식으로 작동하므로 이러한 4 개의 포트를 동기화하는 방법을 찾아야합니다.
P.
SerialPort 클래스의 인스턴스가 4 개 있습니다.
다음은 COM 포트를 통해 데이터를 수신하는 처리기입니다.
private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort rThis = (SerialPort)sender;
string existingData = rThis.ReadExisting();
int NumReceived = existingData.Length;
if (NumReceived > 0)
{
char[] ReceivedByte = existingData.ToCharArray();
// if RX bytes cannot be processed
if (!rThis.ProcessReceivedBytes(ReceivedByte, NumReceived))
{
rThis.ReportThreadError(ThreadId.TI_READ, 0x07FFFFF);
}
}
}
감사합니다,이 옵션에 대한 DataReceived 핸들러와 haven't 생각에 몰두했다. 그것을 시도해 보겠다. 호기심에 가깝다. DataReceived 핸들러를 사용하여 동일한 결과를 얻을 수 있을까? – user3244329
나는 당신이 의미하는 것을 보았습니다, 미안하지만 약간의 오해. – user3244329