我打开多个串行端口并将DataReceived事件分配给单个方法。如果现在多个com端口同时收到某些内容, SerialPort_DataReceived 被称为并行(?),所以我尝试使用 lock ,这样只能处理一个事件时间。
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
lineList.add(cell.getStringCellValue());
}
现在我的问题是,锁定会导致错过收到的内容,因为不会立即处理每个事件吗?我从里面锁定区块中调用 SerialPort.Read()和 SerialPort.DiscardInBuffer()。