我有一些Action系列。 集合中的每个动作都必须在运行之前等待他之前的动作 例如......
List<Action> actionCollection = new List<Action>()
{
func1,
func2,
func3
};
现在,我想让所有动作在Task中运行 - 但是Action1(func 1)必须在Action2(func 2)中运行 在Action1完成之前,Action2无法启动。
怎么做?
谢谢
答案 0 :(得分:2)
public Task ExecuteConsecutivelyAsync(IEnumerable<Action> actions) {
return Task.Factory.StartNew(delegate {
foreach (var action in actions) {
action();
}
});
}
您可能需要/需要调用接受TaskScheduler的StartNew
重载并传入TaskScheduler.FromCurrentSynchronizationContext()
以保持任务在您的UI线程上运行。如上所述,它将倾向于在线程池上运行。