Файл: Основные правила работы с функциями: примеры и ограничения использования функций в различных языках программирования.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 51

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

3.3 Асинхронные функции в C#

В C# Аналог класса Promise – класс Task. Все асинхронные функции в C# имеют тип возвращаемого значения Task [18]. Рассмотрим пример.

using System.Threading.Tasks;

async Task sleep(int time)

{

    await Task.Delay(time);

}

async Task Main(string[] args)

{

    Console.WriteLine("Сейчас");

    await sleep(5000);

    Console.WriteLine("Прошло 5 секунд");

}

‘System.Threading.Tasks’ – пространство имён содержащее тип ‘Task’. В этом примере мы создаём асинхронную функцию ‘sleep’, где используем статическую функцию ‘Task.Delay’. Затем, в асинхронной функции ‘Main’, мы используем функцию ‘sleep’ оператором ‘await’.

Рассмотрим ещё один пример:

using System.Net.Http;

using System.Threading.Tasks;

HttpClient client = new HttpClient();

async Task Main()

{

    try

    {

        string responseBody = await client.GetStringAsync("http://google.com");

        Console.WriteLine(responseBody);

    }

    catch (HttpRequestException)

    {

        Console.WriteLine("Ошибка, запрос провалился");

    }

[19]

Здесь мы совершаем HTTP запрос и пишем ответ в консоль используя, асинхронные функции. Разберём код.

using System.Net.Http;

Используем это пространство имён для работы с HTTP.

HttpClient client = new HttpClient();

Создаём новый HTTP клиент для выполнения запроса.

string responseBody = await client.GetStringAsync(

"http://google.com");

Console.WriteLine(responseBody);

Получаем HTTP ответ, используя асинхронную функцию ‘client.GetStringAsync’.

Вывод 3

Асинхронные функции в программировании позволяют легко имплементировать асинхронную модель. В некоторых случаях асинхронные функции могут сохранить не малое время для исполнения задач. Они особо полезны, когда нужно выполнять несколько задач параллельно.

Синтаксис асинхронных функция очень похож в JavaScript и C#. В обоих

языках присевает абстрактный класс для асинхронных задач – Promise в JavaScript и Task в C#.

Заключение

Как было сказано раньше, функции – одна из главных концепций в программировании. В этой работе мы рассмотрели фундаментальные правила и концепции функций в JavaScript и C#, практические примеры их использования, асинхронные функции, а также техники как рекурсия и функции обратного вызова.

Библиография

1. Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming. Marijn Haverbeke. 2018. – 472p.

  1. https://eloquentjavascript.net/03_functions.html#p_H5CjsrL2Dh

  2. https://eloquentjavascript.net/03_functions.html#h_tqLFw/oazr

  3. https://eloquentjavascript.net/03_functions.html#h_jxl1p970Fy

  4. https://eloquentjavascript.net/03_functions.html#h_XqQR5FlX+8

  5. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions#Defining_functions

  6. https://eloquentjavascript.net/03_functions.html#p_H5CjsrL2Dh

  7. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/methods

  8. https://eloquentjavascript.net/03_functions.html#h_jxl1p970Fy

  9. https://eloquentjavascript.net/11_async.html#h_n9ws/jdPpb

  10. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/

  11. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/#delegates-overview

  12. https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=netframework-4.8

  13. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/

  14. https://eloquentjavascript.net/11_async.html#p_UMfVhtpDiH

  15. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/methods#async-methods

  16. https://eloquentjavascript.net/11_async.html#h_sdRy5CTAP/

  17. https://eloquentjavascript.net/18_http.html#h_1Iqv5okrKE

  18. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/methods#async-methods

  19. https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netframework-4.8