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

TrySetResult

TrySetResult возвращает true при первом вызове и false потом, без InvalidOperationException.

Синтаксис

bool ok = tcs.TrySetResult(12345);

Пример

Давайте вызовем TrySetResult два раза:

using System; using System.Threading.Tasks; class Program { static async Task Main() { var tcs = new TaskCompletionSource<int>(); bool first = tcs.TrySetResult(12345); bool second = tcs.TrySetResult(99999); Console.WriteLine(first); Console.WriteLine(second); int res = await tcs.Task; Console.WriteLine(res); } }

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

True False 12345

Пример

Давайте сравним с SetResult, который бросает при повторе:

using System; using System.Threading.Tasks; class Program { static void Main() { var tcs = new TaskCompletionSource<int>(); tcs.TrySetResult(12345); bool ok = tcs.TrySetResult(99999); Console.WriteLine(ok); } }

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

False

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

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