Wywołanie funkcji asynchronicznych

0

Witam.
Ostatnio czytając różne artykuły na temat asynchroniczności w c# natknąłem się na taki dziwny przykład:

        internal async Task<bool> CalculateX()
		{
			return	await CalculateSomething();
			
		}
        internal async Task<bool> CalculateY()
		{
			return	 await CalculateX();
			
		}

	    void Main()
		{
			var result = CalculateY();
			
		}

Jak w powyższym wypadku będzie wyglądać sytuacja:

  1. Funkcje CalculateY i CalculateX wykonają się synchronicznie.
  2. Funkcje CalculateY i CalculateX wykonają się asynchronicznie.
  3. Funkcja CalaculateY wykona się synchronicznie, a CalculateX asynchronicznie
    ??
0

Odpowiedź 3. CalculateY będzie wykonywać się synchronicznie do momentu napotkania await. A await wywoła funkcję CalculateX już w sposób asynchroniczny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1