Ich versuche, mich um asynchrone Programmierung in C# zu bekommen. Ich habe ein grundlegendes WPF-Programm erstellt. Dies beinhaltet eine neue Klasse CleaningService
, die eine asynchrone Methode Start()
hat. Das WPF-Programm verfügt über eine Schaltfläche, die die Methode Start()
bei Klick aufruft.Async Programmierung in C#
Innerhalb dieser Start()
Methode möchte ich eine asynchrone Method1()
Methode und dann eine asynchrone Method2()
Methode aufrufen. Wenn ich auf den Knopf klicke, wird Method2()
nicht aufgerufen. Warum sollte das der Fall sein?
Code:
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);
}
}
}
Sie nie die Aufgabe Konstruktor verwenden sollten. Je. –