如何在 C# 中管理混合的同步和异步进程?

How does one manage a mix of synchronous and asynchronous processes in C#?

期望的结果:

定义同步和异步方法关系的混合。

例子

假设有 4 个方法,每个方法包含一个进程,其中:

  1. Method.ProcessA1 必须在调用 Method.ProcessA2 之前开始和完成(同步关系)。
  2. Method.ProcessB1 必须在调用 Method.ProcessB2 之前开始和完成(同步关系)。
  3. Method.ProcessA 和 Method.ProcessB 可以开始和结束,而彼此无关并且并行(异步关系)。

下面显示的流程图link更清楚地说明了所需的同步性。处理流程图如下:

有一个async方法,也许在这里使用比较合适。

注意:我是 SO 的新手,愿意接受有关编写更高质量问题的建议。

void ProcessA()
{
    ProcessA1();
    ProcessA2();
}

void ProcessB()
{
    ProcessB1();
    ProcessB2();
}

void LaunchProcesses()
{
    Task aTask = Task.Run((Action)ProcessA); //You could also call use Task.Run(() => ProcessA());
    Task bTask = Task.Run((Action)ProcessB);
    aTask.Wait();
    bTask.Wait();
}