gpt4 book ai didi

c# - C# 中的异步编程

转载 作者:太空宇宙 更新时间:2023-11-03 23:06:10 26 4
gpt4 key购买 nike

我正在努力了解 C# 中的异步编程。我创建了一个基本的 WPF 程序。这包括一个新类 CleaningService,它有一个异步 Start() 方法。 WPF 程序有一个按钮,它在单击时调用 Start() 方法。

在此 Start() 方法中,我想调用异步 Method1() 方法,然后调用异步 Method2() 方法。

当我点击按钮时,Method2() 没有被调用。为什么会这样?

代码:

class CleaningService : ICleaningService
{
private bool _continue;

public async void Start()
{
this._continue = true;

if (!await this.Method1())
{
this._continue = false;
}

if (!await this.Method2())
{
this._continue = false;
}
}

public void Cancel()
{
this._continue = false;
}

public async Task<bool> Method1()
{
// do something
Console.WriteLine("Processing Method1..");
return await new Task<bool>(() => true);
}

public async Task<bool> Method2()
{
if (this._continue)
{
// do something
Console.WriteLine("Processing Method2..");
return await new Task<bool>(() => true);
}
else
{
return await new Task<bool>(() => false);
}
}
}

最佳答案

您从未在Method1 中启动任务(您刚刚创建了一个Task,但它从未启动过)

关于c# - C# 中的异步编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41077642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com