Junior — Middle
Ako sa vykonáva asynchrónna funkcia v kontexte vlákien vykonávania?
sobes.tech AI
Odpoveď od AI
Asynchrónna funkcia v C# sa zvyčajne implementuje pomocou kľúčových slov async a await. Pri volaní takejto funkcie sa vytvorí úloha (Task), ktorá beží nezávisle od hlavného vlákna.
Vnútri asynchrónnej funkcie, keď narazí na await, sa vykonávanie pozastaví a kontrola sa vráti volajúcemu kódu. Keď očakávaná operácia skončí, pokračuje vykonávanie funkcie od miesta, kde bolo pozastavené.
Dôležité je poznamenať, že asynchrónnosť neznamená nevyhnutne vytvorenie nového vlákna. Často sa používa jedno vlákno, ktoré prepína medzi úlohami, bez blokovania hlavného vlákna UI alebo spracovania.
Príklad:
public async Task<string> GetDataAsync()
{
var data = await DownloadDataAsync(); // asynchrónne načítanie
return data;
}
Tu sa spustí DownloadDataAsync a vlákno nie je blokované, zatiaľ čo sa načítavajú údaje.