Implementación de un tiempo de espera en una función que devuelve un valor

Tengo una función que llama a una solicitud de lectura o escritura en un puerto serie y luego devuelve el valor que se leyó. Estoy utilizando Commstudio Express (estoy implementando una clase de Commstudio), pero parece que las funciones de tiempo de espera no funcionan en absoluto, así que estoy tratando de implementar mi propio tiempo de espera. Actualmente tengo un temporizador que se configura cuando se solicita que lea o escriba en el puerto, y si el temporizador se apaga, la devolución de llamada cierra la conexión y se genera una excepción. Intenté que la devolución de llamada del temporizador produjera una excepción, pero la excepción debe propagarse a través del subproceso que estaba llamando a la función de lectura / escritura original, por lo tanto, funciona, pero siento que está desordenado y ahí está. Debe ser una mejor manera de hacer lo que quiero.

Respuestas a la pregunta(4)

Su respuesta a la pregunta