|
Заблокирован
|
||||||||||
Асинхронное программирование, метод Task.Run() для случая создания задачи с получением результата26.03.2021, 17:39. Показов 1317. Ответов 10
Метки нет (Все метки)
Есть такой пример
Кликните здесь для просмотра всего текста
И в этом примере есть такая строка int x = await Task.Run(()=>Factorial(n)); Почему используется метод класса Task, а не класса Task<TResult>? Ведь по идее тут нужно было написать так: int x = await Task<int>.Run(()=>Factorial(n)); (это тоже работает) Понятно, что класс Task<TResult> наследует все методы класса Task. Но, формально говоря, получается, что метод Task.Run() имеет перегрузку, которая создает и запускает задачу с возвращаемым результатом. Хотя сам класс Task представляет задачу, которая не возвращает результат. Зачем эта путаница? Или я что-то не так понимаю? Кто правильно переведёт вот эту фразу из описания метода Task.Run()?
Вообще с классом Task была введена ещё одна путаница - различие между возвращаемым типом и возвращаемым результатом. Или я не прав?
0
|
||||||||||
| 26.03.2021, 17:39 | |
|
Ответы с готовыми решениями:
10
Асинхронное программирование: почему в AsyncCallback не указать метод обратного вызова
Программирование МКЭ для одномерного случая |
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|||||||||||
| 27.03.2021, 04:20 | |||||||||||
|
Особо не стал вчитываться в ход мыслей.
Предлагаю покапать в этом направлении
1
|
|||||||||||
|
|
||||||
| 27.03.2021, 10:12 | ||||||
|
Добавлено через 18 минут https://stackoverflow.com/ques... -signature
1
|
||||||
|
Заблокирован
|
||||
| 27.03.2021, 10:47 [ТС] | ||||
|
По факту - да, "не самая тривиальная". Но по сути, скажу я вам. что и не особо сложная, когда уже разобрался (в чем-то или совсем со со всем). Не по теме: По сути все темы из области программирования не особо сложные - каждая их них это некие три сосны, которые нужно узнать понять и не плутать в них. Асинхронное программирование - не три, а пять или чуть больше этих сосен. Добавлено через 2 минуты
0
|
||||
| 27.03.2021, 11:04 | |
|
0
|
|
|
Заблокирован
|
|
| 27.03.2021, 11:33 [ТС] | |
|
Wolfdp, "богат могучив русский языка" и c# - тоже не тупе) Да, разобраться с тем, что можно наворотить с помощью асинхронных возможностей c# - не просто)
Я имел ввиду основы этого языка в части асинхронности. Основы - всегда три или чуть более сосен. Но и их познать не просто) А должно быть просто!) ![]() ![]() Добавлено через 20 минут Wolfdp, раз уж такая пьянка... Ещё вопрос. Попадалась информация, что поведение асинхронного кода может разниться для приложений разного типа. Например, для приложения WPF и для консольного (из-за специфики основных потоков). В NET 5 эта особенность осталась или нет? Я имею ввиду такую проблему - отлаживаешь модель в консольном приложении, а потом в WPF она ведет себя "несколько иначе".
0
|
|
|
Заблокирован
|
||||||||
| 27.03.2021, 16:31 [ТС] | ||||||||
|
Добавлено через 3 часа 17 минут а где описан такой синтаксис? ![]() Он, конечно, работает. Но можно ли увидеть официальное описание такого применения лямбд? Лямбды везде описываются как средство инициализации делегатов (лямбда создает анонимный метод, на который ссылается экземпляр делегата). А тут с помощью лямбды определяется метод. Я не против) Тем паче, что все работает. Но где описана возможность такого применения лямбд?! ![]() Добавлено через 9 минут P.S. То бишь, понятно, что ваш код определения метода вроде как эквивалентен такому коду:
0
|
||||||||
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
||||||||||||||||||||||||||||||||
| 27.03.2021, 17:13 | ||||||||||||||||||||||||||||||||
|
titan4ik,
Человек int потерял. Я ему показал, как его потерять, не только в Task Добавлено через 11 минут для общего развития
0
|
||||||||||||||||||||||||||||||||
|
Заблокирован
|
|
| 27.03.2021, 17:29 [ТС] | |
|
0
|
|
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
||||||||||||
| 27.03.2021, 18:24 | ||||||||||||
|
titan4ik, это больше к тс
Действительно Task<TResult> : Task Но сам Run находится в Task. Коротый уже вызывает Task<TResult>.StartNew
0
|
||||||||||||
| 27.03.2021, 18:24 | |
|
Помогаю со студенческими работами здесь
11
Алгоритм Свена и метод дихотомии для двумерного случая Отмена Task.run
Использовать значение из Task.Run
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|