バックグラウンドで実行したいアクションがいくつかありますが、それらは次々と同期的に実行する必要があります。
これを実現するために 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());
}
}