我有几个需要在后台执行的操作,但它们必须按顺序同步执行。
我想知道是否使用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());
}
}