Как я могу назначить имя для задачи в 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;
}
}