|
@@ -16,22 +16,27 @@ public async Task<string> DownloadDataAsync(string url)
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
```
|
|
|
## Классы Task и Task<T>
|
|
|
Класс Task представляет асинхронную операцию, которая может быть выполнена в фоновом режиме. Task<T> возвращает результат типа T после завершения задачи. Для создания и запуска задач можно использовать Task.Run, который позволяет выполнить код в отдельном потоке:
|
|
|
|
|
|
```
|
|
|
+
|
|
|
Task.Run(() =>
|
|
|
{
|
|
|
// Долгая операция
|
|
|
});
|
|
|
+
|
|
|
```
|
|
|
Для возврата результата без выполнения асинхронной операции можно использовать Task.FromResult:
|
|
|
```
|
|
|
+
|
|
|
public Task<int> CalculateAsync()
|
|
|
{
|
|
|
return Task.FromResult(42);
|
|
|
}
|
|
|
+
|
|
|
```
|
|
|
|
|
|
Ожидание завершения задач осуществляется с помощью await. Использование Task.Wait() или Task.Result блокирует поток, что не рекомендуется в асинхронном коде.
|