Criar uma fila de execução usando Task.ContinueWith?

Tenho várias ações que desejo executar em segundo plano, mas elas devem ser executadas de forma síncrona uma após a outr

Eu queria saber se é uma boa idéia usar o método Task.ContinueWith para conseguir isso. Você prevê algum problema com isso?

Meu código é mais ou menos assim:

private object syncRoot =new object();
private Task latestTask;

public void EnqueueAction(System.Action action)
{
    lock (syncRoot)
    {
        if (latestTask == null)
            latestTask = Task.Factory.StartNew(action);
        else
            latestTask = latestTask.ContinueWith(tsk => action());
    }
}

questionAnswers(3)

yourAnswerToTheQuestion