将两种方法链成任务

Web*_*ine 2 c# multithreading task

我正在教自己c#并努力理解线程,异步等.我正在尝试做一些实践练习以提高我的知识水平.

我有两种方法:方法x和方法Y.

我需要创建一个将运行方法X的任务,一旦方法x完成,它将运行方法y.

然后我想在此基础上再创建三次相同的任务.所以基本上有三个不同的任务运行两种方法.

方法是public void.我试过这样的事情:

Task[] tasks = new Task[2];
tasks[1] = Task.Run(() => x(n1.ToString()));
tasks[2] = tasks[1].ContinueWith(antecedent => y() ));
Run Code Online (Sandbox Code Playgroud)

SO *_*ood 5

如果MethodX并且MethodY是:

public async Task MethodX() {}
public async Task MethodY() {}
Run Code Online (Sandbox Code Playgroud)

那么,你可以使用:

await MethodX();
await MethodY();
Run Code Online (Sandbox Code Playgroud)

如果MethodX并且MethodY是:

public void MethodX() {}
public void MethodY() {}
Run Code Online (Sandbox Code Playgroud)

那么,你可以使用:

await Task.Run(() => 
{ 
    MethodX();
    MethodY();
}
Run Code Online (Sandbox Code Playgroud)