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;
}
}