【发布时间】:2017-11-23 13:19:36
【问题描述】:
我正在自学 C# 并努力理解线程、异步等。我正在尝试做一些实践练习来提高我的知识。
我有两种方法:方法 x 和方法 Y
我需要创建一个将运行方法 X 的任务,一旦方法 x 完成,它将运行方法 y。
然后我想在此基础上创建相同的任务 3 次。所以本质上是运行这两种方法的三个不同的任务。
方法是public void。我尝试过这样的事情:
Task[] tasks = new Task[2];
tasks[1] = Task.Run(() => x(n1.ToString()));
tasks[2] = tasks[1].ContinueWith(antecedent => y() ));
【问题讨论】:
-
如果它们必须按顺序执行,为什么要在 X 和 Y 上执行任务呢?
-
据我所知,您可以按顺序调用它们。如果你想要不同的行为,那就不清楚了。
-
三个不同的任务,顺序运行还是并行运行?
-
如果你的方法是公共的 void Foo(),这不是他们的问题,无论如何都不会同步运行。您不希望它们成为公共任务 Foo()。 (Task 是 void 的异步等价物)
标签: c# multithreading task