public class test
{
public async Task Go()
{
await PrintAnswerToLife();
Console.WriteLine("done");
}
public async Task PrintAnswerToLife()
{
int answer = await GetAnswerToLife();
Console.WriteLine(answer);
}
public async Task<int> GetAnswerToLife()
{
await Task.Delay(5000);
int answer = 21 * 2;
return answer;
}
}
Wie kann ich das tun, wenn ich Go in der main () -Methode aufrufen möchte? Ich probiere neue Funktionen aus. Ich weiß, dass ich die asynchrone Methode mit einem Ereignis verknüpfen kann. Durch Auslösen dieses Ereignisses kann die asynchrone Methode aufgerufen werden.
Aber was ist, wenn ich es direkt in der Hauptmethode aufrufen möchte? Wie kann ich das machen?
Ich habe so etwas gemacht
class Program
{
static void Main(string[] args)
{
test t = new test();
t.Go().GetAwaiter().OnCompleted(() =>
{
Console.WriteLine("finished");
});
Console.ReadKey();
}
}
Aber es scheint ein totes Schloss zu sein und nichts wird auf dem Bildschirm gedruckt.