Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.03.2015, 16:27
|
|||
---|---|---|---|
Task.ExceptionFromResult ? |
|||
#18+
Привет. Какой есть аналог для Task.FromResult в случае если нужно выбросить исключение ? Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2015, 17:19
|
|||
---|---|---|---|
Task.ExceptionFromResult ? |
|||
#18+
Вариант просто Код: c# 1.
подходит? Другой вариант - использовать TaskCompletionSource. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2015, 17:32
|
|||
---|---|---|---|
Task.ExceptionFromResult ? |
|||
#18+
Ilya81, Да вот нагуглил такой вариант решения с TaskCompletionSource: Код: c# 1. 2. 3. 4. 5. 6.
Но интересует насколько он корректен. Не будет некорректного стека вызовов ? Не хочется же везде, где нужно бросить исключение, писать эту лапшу с TaskCompletionSource. Кажется throw new ArgumentException подойдет если метод помечен как async. Если же нет - то не подойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2015, 17:51
|
|||
---|---|---|---|
Task.ExceptionFromResult ? |
|||
#18+
Если нужно не помечать, как async, то TaskCompletionSource я и использую. В т. ч. если нужно callback превратить в async. Со стеком вызовов особых проблем не помню, но если exception, то глубже этого метода вызова всё равно нет. Если громоздко, можно написать свой метод-расширение для Task, в который включить вот это. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1401836]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 358ms |
total: | 482ms |
0 / 0 |