He creado una función de la siguiente manera
public int ManFunction() { Task task = Task.Factory.StartNew(RunTask, cts_token.Token); return task.Id; }¿Hay alguna forma de ejecutar una tarea por ID de tarea en C#?
básicamente, ¿cuándo llamo a la función por segunda vez? Quiero verificar si la tarea se está ejecutando o no. en base a eso, quiero pasar una notificación al usuario de que la tarea ya se está ejecutando.
Usar Task.Id como identificadores es una mala idea. Task.Id no es único ver comentarios aquí
Su función en lugar de id puede devolver Task :
public Task ManFunction() { Task task = Task.Factory.StartNew(RunTask, cts_token.Token); return task; } Básicamente, puede trabajar con el objeto Task como con id, no hay diferencia para usted. Entonces puede usar task.IsCompleted para verificar si la tarea se realizó o no, como:
var t = this.ManFunction(); //..... if (!t.IsCompleted) { //..... }