异步模式-在上一个任务完成时运行任务 - c#

我有点困惑,我应该如何实现多个异步任务的工作流。例如-Task1启动,Task1完成时,Task2启动,Task2完成时启动TaskN等。或者换句话说-异步任务如何通知“父”任务其状态?我想可以在这里使用TaskStatus,但不确定如何精确。
我确实在MSDN上进行了搜索,但是没有这种模式的完整示例。
附言我编辑我的问题,以便专注于一个特定的问题。

c#大神给出的解决方案

如果您确实要等到task1完成之后再启动task2,则一种方法如下所示:

Task<string> task1 = GetUsername();
string username = await task1; // blocks(or "waits") here until GetUsername returns

Task<string> task2 = GetConfig(username); // since we have the return from above, we can pass it here
string config = await task2 ; // blocks here until GetConfig returns

请注意,此Task1和Task2不会彼此并行执行,因为我们会根据您的请求明确地等待一个完成,然后再启动另一个。尽管它们相对于调用它们的线程是异步的。

如果您有List<Task>并想顺序执行它们,则方法将有所不同,而并行执行它们将是另一种方法。

如果您查看stackoverflow,您会看到许多使用某些方法的示例,例如Wait,WaitAll,WhenAll等,这些方法可以使您进行多种组合的事情。

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可

LeetCode题解圆上任取三点构成锐角三角形的概率

来自字节跳动的一道几何题题解:1/4

LeetCode题解深度优先遍历和回溯的关系?

深度优先遍历的范围更大还是回溯的范围更大?为什么?题解:我的理解是:dfs是回溯思想的一种体现- 回溯:是在整个搜索空间中搜索出可行解,在搜索过程中不断剪枝回退,这是回溯的思想,这个搜索空间并没有限制于特定的数据结构。- dfs:dfs是指特定的数据结构中如图,树(特殊的图)中搜索答案,范围限制在了特定的数据结构。个人拙见。

LeetCode题解盲人买袜子。

他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?题解:暴力破解, 把袜子都拆开 一人一只 哈哈