У меня есть несколько действий, которые я хочу выполнить в фоновом режиме, но они должны выполняться синхронно одно за другим.
Я был интересно, стоит ли использовать метод 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());
}
}