Как я могу назначить имя для задачи в TPL

Я собираюсь использовать много задач, запущенных в моем приложении. Каждая группа задач по какой-то причине выполняется. Я хотел бы назвать эти задачи, чтобы при просмотре окна «Параллельные задачи» я мог их легко распознать.

С другой точки зрения, представьте, что я использую задачи на уровне структуры для заполнения списка. Разработчик, который использует мою платформу, также использует задачи для своей работы. Если она посмотрит в окно «Параллельные задачи», то найдет несколько задач, о которых не имеет представления. Я хочу назвать задачи, чтобы она могла отличить основные задачи от своих задач.

Было бы очень удобно, если бы был такой API:

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

или, может быть:

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

или даже во время работы сParallel.ForEach

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

Можно ли назвать задачу?

Можно ли дать Parallel.ForEach структура именования (возможно, с использованием лямбды), поэтому она создает задачи с этим именованием?

Где-то есть такой API, который мне не хватает?

Я также попытался использовать унаследованную задачу, чтобы переопределить ее ToString (). Но, к сожалению, окно Parallel Tasks не использует 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;
    }
}

Ответы на вопрос(9)

Ваш ответ на вопрос