Como posso atribuir um nome a uma tarefa na TPL

Eu vou usar muitas tarefas em execução no meu aplicativo. Cada grupo de tarefas está sendo executado por algum motivo. Gostaria de nomear essas tarefas para que, quando eu assistir à janela Tarefas Paralelas, eu possa reconhecê-las facilmente.

Com outro ponto de vista, considere que estou usando tarefas no nível do framework para preencher uma lista. Um desenvolvedor que usa minha estrutura também está usando tarefas para o trabalho dela. Se ela olhar para a janela Parallel Tasks, ela encontrará algumas tarefas que não têm idéia. Eu quero nomear as tarefas para que ela possa distinguir as tarefas da estrutura de suas tarefas.

Seria muito conveniente se houvesse essa API:

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

ou talvez:

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

ou mesmo enquanto trabalhavaParallel.ForEach

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

É possível nomear uma tarefa?

É possível dar ‍‍‍Parallel.ForEach uma estrutura de nomenclatura (talvez usando um lambda) para criar tarefas com essa nomenclatura?

Existe essa API em algum lugar que eu estou perdendo?

Eu também tentei usar uma tarefa herdada para substituir o ToString (). Mas infelizmente a janela Parallel Tasks não 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;
    }
}

questionAnswers(9)

yourAnswerToTheQuestion