Task
на самом деле не знает, как это началось. Это просто объект, который содержит состояние завершения чего-то .
Это «что-то» не обязательно является фоновой задачей, которую вы начали с передачи делегата TaskCompletionSource
. Это может быть что-то другое. Вы можете создавать произвольные Task
экземпляры и управлять, когда они становятся помеченными как завершенные / ошибочные / отмененные (см. Task
).
Таким образом, нет никакого способа сделать это с помощью Task
одного. Вам нужно будет создать свой собственный объект, который знает, как запустить каждую задачу, и передать это, и попросить его перезапустить.