Está bien derivar de la tarea TPL para devolver más detalles del método?

Mi método original se ve así:

string DoSomeWork();

MetodoDoSomeWork comienza a trabajar en otro hilo y devuelve la ID de ejecución (solo una cadena aleatoria). Más tarde, puedo consultar los resultados por la ID de ejecución dada. El punto principal es hacer que la ID de ejecución esté disponible antes de que se complete el trabajo.

Ahora quiero cambiar la firma para devolver la tarea, para que el usuario pueda esperar si lo desea.

Task DoSomeWork();

Al mismo tiempo, todavía necesito devolver la ID de ejecución (para fines de seguimiento, por ejemplo) y veo pocas opciones. Primero siout parámetro, el segundo es devolver la tupla con el ID de ejecución y la tarea (en C # esto parece no ser la mejor opción), y el tercero sobre el que realmente quiero preguntar.

¿Qué pasa si voy a crear una clase que derivará deTask clase

public class ExtendedTask : Task
{
     public string ExecutionID {get; set;}
}

¿Esto se ve bien? ¿O es mejor decidir otras opciones?

PD. En BCL hay algunos derivados de las clases de tareas.

ACTUALIZA, parece que no pude definir esta clara enouthg. Pero necesito acceso a ExecutionID antes de que se complete el trabajo, por lo que no puedo usarTask.Result.

Respuestas a la pregunta(8)

Su respuesta a la pregunta