TPL предназначен для абстрагирования асинхронного характера задач от потребителя, поэтому, если вы вызовете ContinueWith
для завершенной задачи, то обработчик антецедента будет вызван немедленно.
Это означает, что вы можетесоздайте Task
с TaskFactory.StartNew
(который запланирует выполнение задачи асинхронно) или new Task(() => { /*...*/})
с последующим task.RunSynchronously()
, и вы всегда можете вызвать ContinueWith
на Task
.По сути, это означает «запланировать запуск этой программы после завершения задачи или сейчас, если она уже завершена».