Создание очереди выполнения с помощью Task.ContinueWith?

У меня есть несколько действий, которые я хочу выполнить в фоновом режиме, но они должны выполняться синхронно одно за другим.

Я был интересно, стоит ли использовать метод Task.ContinueWith для достижения этой цели. Предвидите ли вы какие-либо проблемы с этим?

Мой код выглядит примерно так:

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());
    }
}
6
задан lukebuehler 21 July 2011 в 17:08
поделиться