Продолжить с задачей в главном потоке

Простите, если это простой вопрос; Я не смог сформулировать это достаточно общим образом, чтобы найти ответ.

Рассмотрим этот код:

var task = Task.Factory.StartNew(() => Whatever());  
task.ContinueWith(Callback, TaskScheduler.FromCurrentSynchronizationContext())

Как точно определяется, когда будет выполняться метод обратного вызова?

Будет ли он ждать, пока основной поток в настоящее время не завершит делать то, что он делает, или он будет вызван сразу после завершения асинхронного вызова? И будет ли этот обратный вызов полностью выполняться до того, как основной поток вернется к тому, что делал раньше?

Ответы на вопрос(1)

Ваш ответ на вопрос