Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1183 of 1492 menu
◀ ▶

Task

Task<int> - тоже задача, что и Task, но с типом результата. Необобщённый Task значения не даёт.

Синтаксис

Task<int> task = Task.FromResult(12345);

Пример

Давайте дождём готовую задачу через Task.FromResult:

using System; using System.Threading.Tasks; class Program { static async Task Main() { int res = await Task.FromResult(12345); Console.WriteLine(res); } }

Результат выполнения кода:

12345

Пример

Давайте получим то же число через Result:

using System; using System.Threading.Tasks; class Program { static void Main() { var task = Task.FromResult(12345); int res = task.Result; Console.WriteLine(res); } }

Результат выполнения кода:

12345

Пример

Давайте сравним await и Result при сбое:

using System; using System.Threading.Tasks; class Program { static async Task Main() { var task = Task.FromException<int>(new InvalidOperationException("abcde")); try { await task; Console.WriteLine("ok"); } catch (InvalidOperationException ex) { Console.WriteLine(ex.Message); } try { task.Result; } catch (AggregateException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"abcde" "fail"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить