Necesito ejecutar un método retrasado en mi código para poder controlar aún más ese "método pospuesto" (es decir, posponerlo aún más).
Más específicamente, estoy haciendo esto cuando leo datos del puerto serie para asegurarme de que los datos hayan dejado de fluir. Los datos que recibo son bastante inespecíficos, por lo que no puedo confiar en su longitud o en algún símbolo de terminación. En cambio, quiero usar el controlador DataReceived como de costumbre e iniciar el método de "procesar datos" pospuesto durante 200 ms aproximadamente, pero posponerlo una y otra vez si se activan más controladores DataReceived.
Básicamente, mi código tendría que ser algo como esto:
private string _serialPortCurrentReceivedDataBuffered = null; private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { string receivedData = ((SerialPort)sender).ReadExisting(); if (_serialPortCurrentReceivedDataBuffered == null) { _serialPortCurrentReceivedDataBuffered = receivedData; } else { _serialPortCurrentReceivedDataBuffered += receivedData; } <THAT POSTPONED METHOD>.SetStartToTime(DateTime.Now.AddMilliseconds(200)); } private <THAT POSTPONED METHOD>() { string receivedData = _serialPortCurrentReceivedDataBuffered; _serialPortCurrentReceivedDataBuffered = null; <HANDLE RECEIVED DATA> }¿Hay una manera de hacerlo? Estoy trabajando con .NET Framework 4.7.2.
Además, dentro de <ESE MÉTODO APLAZADO> tendré que manipular la interfaz de usuario (WinForms), si eso tiene alguna consideración en este caso.
¡Gracias por adelantado!