Back to questions
Junior — Middle
64
Как отличаются подходы к реализации асинхронных операций в C# и JavaScript?
Answer from AI
sobes.tech AI
В C# и JavaScript асинхронные операции реализуются по-разному, хотя цель одна — не блокировать основной поток выполнения.
C#:
- Использует ключевые слова
asyncиawaitдля работы с задачами (Task). - Асинхронность основана на модели задач и планировщике потоков.
- Позволяет писать асинхронный код, похожий на синхронный, улучшая читаемость.
Пример:
public async Task<string> GetDataAsync()
{
var result = await httpClient.GetStringAsync("https://example.com");
return result;
}
JavaScript:
- Асинхронность основана на событийном цикле и промисах.
- Используются
Promise,async/awaitдля работы с асинхронным кодом. - Асинхронные операции не создают новые потоки, а работают в одном потоке с неблокирующим вводом-выводом.
Пример:
async function getData() {
const response = await fetch('https://example.com');
const data = await response.json();
return data;
}
Основное отличие: C# использует многопоточность и планировщик задач, а JavaScript — однопоточный событийный цикл с неблокирующим вводом-выводом.