Я собираюсь использовать множество задач, выполняемых в моем приложении. Каждая связка задач выполняется по какой-то причине. Я хотел бы назвать эти задачи так, чтобы, просматривая окно «Параллельные задачи», я мог их легко распознать.
С другой точки зрения, предположим, что я использую задачи на уровне платформы для заполнения списка. Разработчик, использующий мой фреймворк, также использует задачи для своей работы. Если она посмотрит в окно параллельных задач, то обнаружит некоторые задачи, о которых понятия не имеет. Я хочу назвать задачи, чтобы она могла отличать задачи фреймворка от своих задач.
Было бы очень удобно, если бы был такой 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(). Но, к сожалению, окно параллельных задач не использует 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;
}
}
Подробнее здесь: https://stackoverflow.com/questions/137 ... ask-in-tpl