使用单个后台工作者执行多个任务的基本线程



我想保证像这样的单个后台工作线程的执行顺序

One BackgroundWorker DoWork =
{
First();
Second();
Third();
...
}
Function First()
{
try{
X();
Y();
Z(); //etc
}catch
}

问题标记为C#。假设代码是您想要在C#中实现的目标的表示,请考虑:

private void button1_Click(object sender, EventArgs e)
{
//If you need a return result
//Task.FromResult(MainThread().ConfigureAwait(false)); 
Task.Run(MainThread);
}
private async Task MainThread()
{
var result1 = await Task1().ConfigureAwait(false);
await Task2().ConfigureAwait(false);
var result3 = await Task3().ConfigureAwait(false);
}
private async Task<int> Task1()
{
await Task.Delay(2000).ConfigureAwait(false);
Debug.WriteLine("Executed task 1");
return 1;
}
private async Task Task2()
{
await Task.Delay(100).ConfigureAwait(false);
Debug.WriteLine("Executed task 2");
}
private async Task<int> Task3()
{
await Task.Delay(1000).ConfigureAwait(false);
Debug.WriteLine("Executed task 3");
return 3;
}

最新更新