Не зная больше о том, что именно вы делаете, я бы порекомендовал использовать что-то похожее на фабрику при выполнении чего-то подобного, отделяя задачу от контроля.Например:
public class Task
{
public TaskController Start()
{
TaskController controller = new TaskController(this);
... // start the task
return controller;
}
}
public class TaskController
{
private Task task;
internal TaskController(Task task)
{
this.task = task;
}
public void Pause() { ... }
public void Resume() { ... }
public void Cancel() { ... }
}
На самом деле, это зависит от того, что вы делаете, относительно того, подходит ли это или нет (например, этот подход - возможно - позволит вам порождать несколько экземпляровзадача выполняется параллельно; я понятия не имею, если это уместно).
Start
и Resume
- довольно стандартные термины.Если вы хотите включить только один из этих , я бы выбрал начало.Если вы ищете более подходящий термин, который может служить обеим целям, я бы выбрал что-то вроде Run
(поскольку оба Start
и Resume
подразумевают что-то о состоянии задачи ... Resume
особенно... и IMO Run
передает немного меньше, чем Start
).