Espera asíncronamente a que la tarea se complete con tiempo de espera


Quiero esperar a que una tarea se complete con algunas reglas especiales: Si no se ha completado después de X milisegundos, quiero mostrar un mensaje al usuario. Y si no se ha completado después de Y milisegundos, quiero automáticamente solicitar la cancelación.

Puedo usar la tarea .ContinueWith para esperar asíncronamente a que la tarea se complete (es decir, programar una acción para ser ejecutada cuando la tarea se complete), pero eso no permite especificar un tiempo de espera. Puedo usar Tarea.Wait para esperar sincrónicamente a que la tarea se complete con un tiempo de espera, pero eso bloquea mi subproceso. ¿Cómo puedo esperar asincrónicamente a que la tarea se complete con un tiempo de espera?


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52