/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.Shared/Extensions/TaskExtensions.cs
34 строки
790 B
Yair
Code Quality: Updated license header
31 дек 2024, 05:03
31 дек 2024, 05:03
8436c6d
Код
Авторство
О чём код?
// Copyright (c) Files Community // Licensed under the MIT License. using System; using System.Threading.Tasks; namespace Files.Shared.Extensions { public static class TaskExtensions { public static async Task WithTimeoutAsync(this Task task, TimeSpan timeout) { if (task == await Task.WhenAny(task, Task.Delay(timeout))) { await task; } } public static async Task<T?> WithTimeoutAsync<T>(this Task<T> task, TimeSpan timeout, T? defaultValue = default) { if (task == await Task.WhenAny(task, Task.Delay(timeout))) return await task; return defaultValue; } public static async Task<TOut> AndThen<TIn, TOut>(this Task<TIn> inputTask, Func<TIn, Task<TOut>> mapping) { var input = await inputTask; return (await mapping(input)); } } }