[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
Async і Await – це ключові слова в C#, які дають змогу писати асинхронний код легше та читабельніше. Вони використовуються в контексті роботи з асинхронними методами і завданнями для забезпечення чуйності та ефективного використання ресурсів.
Як працює Async
Це ключове слово використовується перед оголошенням методу, щоб вказати, що цей метод містить асинхронну логіку. Метод, позначений як async, може містити операції, які можуть бути асинхронно очікуваними.
1 2 3 4 |
public async Task MyAsyncMethod() { // Асинхронная логика } |
Як працює Await
Це ключове слово використовується всередині методу, позначеного як async, для очікування завершення асинхронних операцій. Коли ви використовуєте await, виконання методу призупиняється доти, доки операція, передана в await, не завершиться.
1 2 3 4 5 6 |
public async Task<string> FetchDataAsync() { HttpClient client = new HttpClient(); string result = await client.GetStringAsync("https://api.themoviedb.org/3/genre/movie/list?language=ru-ru&api_key=1e51749fd2aa04cfb4fc2cb1c3c021ed"); return result; } |
У цьому прикладі метод FetchDataAsync асинхронно завантажує вміст веб-сторінки за заданим URL. Вираз await client.GetStringAsync() змушує метод очікувати завершення асинхронної операції завантаження даних.
Коли код доходить до оператора await, управління повертається викликаючому коду, і потік, на якому виконується метод, звільняється для виконання іншої роботи. Коли операція завершиться, метод продовжить виконання з отриманим результатом.
Важливо зазначити, що методи, позначені як async, повертають Task або Task<T>, що дає змогу коду, що керує, асинхронно чекати їхнього завершення.
Приклад асинхронного методу в C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Program { static async Task Main(string[] args) { int number = 10; int result = await PerformAsyncCalculation(number); Console.WriteLine($"Result of calculation: {result}"); } static async Task<int> PerformAsyncCalculation(int input) { // Имитация асинхронных вычислений с задержкой await Task.Delay(TimeSpan.FromSeconds(2)); int calculatedResult = input * 2; return calculatedResult; } } |
Метод PerformAsyncCalculation оголошено як асинхронний із значенням типу Task<int>, що повертається. Він імітує виконання обчислень за допомогою затримки у 2 секунди з використанням Task.Delay.
У методі Main ми викликаємо метод PerformAsyncCalculation з використанням оператора await і отримуємо результат асинхронних обчислень.
Асинхронний код може бути корисним, коли вам потрібно виконувати завдання, які можуть зайняти багато часу (наприклад, завантаження даних із сервера або обчислення) тощо.
Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.
Ви хочете навчитися писати код мовою програмування C#?
Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.
Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:
- Доступ до пройденого матеріалу
- Тематичні статті
- Бібліотека книг
- Онлайн тестування
- Спілкування в закритих групах