Back to questions
Middle — Middle+
72
Каким образом можно организовать выполнение ресурсоёмких задач без блокировки основного потока исполнения?
Companies where asked
Почтатех
Answer from AI
sobes.tech AI
В C# для выполнения ресурсоёмких задач без блокировки основного потока обычно используют асинхронное программирование с ключевыми словами async и await и задачи (Task). Это позволяет выполнять операции в фоновом потоке, не блокируя UI или основной поток.
Пример:
public async Task<int> CalculateAsync()
{
return await Task.Run(() => {
// Долгая ресурсоёмкая операция
Thread.Sleep(5000);
return 42;
});
}
Здесь Task.Run запускает работу в пуле потоков, а await позволяет не блокировать вызывающий поток, пока задача выполняется.
Также можно использовать BackgroundWorker или создавать отдельные потоки вручную, но Task и async/await — более современный и удобный подход.