¿Cómo puedo asignar un nombre a una tarea en TPL?

Voy a usar muchas tareas que se ejecutan en mi aplicación. Cada grupo de tareas se está ejecutando por alguna razón. Me gustaría nombrar estas tareas para que cuando vea la ventana Tareas paralelas, pueda reconocerlas fácilmente.

Con otro punto de vista, considere que estoy usando tareas en el nivel del marco para completar una lista. Un desarrollador que usa mi framework también usa tareas para su trabajo. Si mira la ventana Tareas paralelas, encontrará algunas tareas que no tienen idea. Quiero nombrar tareas para que ella pueda distinguir las tareas del marco de sus tareas.

Sería muy conveniente si hubiera tal API:

var task = new Task(action, "Growth calculation task")

o tal vez:

var task = Task.Factory.StartNew(action, "Populating the datagrid")

o incluso mientras trabajas conParallel.ForEach

Parallel.ForEach(list, action, "Salary Calculation Task"

¿Es posible nombrar una tarea?

¿Es posible dar ‍‍‍Parallel.ForEach ¿Una estructura de nombres (tal vez usando una lambda) para que cree tareas con ese nombre?

¿Hay tal API en algún lugar que me falta?

También he intentado usar una tarea heredada para anular su ToString (). ¡Pero desafortunadamente la ventana de tareas paralelas no usa ToString ()!

class NamedTask : Task
{
    private string TaskName { get; set; }
    public NamedTask(Action action, string taskName):base(action)
    {
        TaskName = taskName;
    }

    public override string ToString()
    {
        return TaskName;
    }
}

Respuestas a la pregunta(9)

Su respuesta a la pregunta