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