Jak mogę przypisać nazwę do zadania w TPL

Wykorzystam wiele zadań uruchomionych na mojej aplikacji. Każda pula zadań działa z jakiegoś powodu. Chciałbym nazwać te zadania, więc gdy oglądam okno Zadania równoległe, mógłbym je łatwo rozpoznać.

Z innego punktu widzenia rozważ użycie zadań na poziomie struktury do wypełnienia listy. Deweloper, który korzysta z mojej struktury, również używa zadań do swojej pracy. Jeśli spojrzy na okno Parallel Tasks, znajdzie kilka zadań, o których nie ma pojęcia. Chcę nazywać zadania, aby mogła odróżnić zadania ramowe od swoich zadań.

Byłoby bardzo wygodne, gdyby istniał taki interfejs API:

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

albo może:

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

lub nawet podczas pracyParallel.ForEach

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

Czy można nazwać zadanie?

Czy można dać ‍‍‍Parallel.ForEach struktura nazewnictwa (może przy użyciu lambda), aby tworzyła zadania z tym nazwiskiem?

Czy jest gdzieś taki API, którego brakuje?

Próbowałem również użyć odziedziczonego zadania, aby zastąpić to ToString (). Ale niestety okno Zadania równoległe nie używa 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