![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.10.2011
Сообщений: 181
|
![]()
Собственно вопрос вот в чем: в книге есть пример по получению результатов из задач. Вот он:
Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Так TaskWithResult ничего долгого не делает, вот и успевает и за 1000 мс, и за 10.
Но вообще обычно вы не можете знать сколько времени займет работа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 06.10.2011
Сообщений: 181
|
![]() Цитата:
Если я правильно понял MSDN, то в t1.Wait() в скобки могу поставить целое число миллисекунд, какое стоит ждать t1. Если t1 за это время не выполняется, то код выполняется дальше. Но на практике получается так, что код, следующий за t1.Start() все равно ожидает выполнения t1, и только после этого выводит обе строки на экран. Если это представить во временной области (со слипом в 5000 и вэйтом в 10), то получается следующим образом: 0 с. - task creates a result... 5 с. - (2, 2) 5 с. - result from task: 2 2 То есть на t1.Wait() программе в принципе все равно. Что он есть, что его нет. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
А, да, видимо автор запутался в своем искусственном примере.
Result ждет завершения. Но обычно таски не так используют. И еще через new + Start вроде их не стоит создавать, но я не помню почему, гугл помнит.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.10.2011
Сообщений: 181
|
![]()
Под автором вы подразумеваете меня или автора книги?
P.S. Кажется, я начинаю понимать зачем автор воткнул этот Wait() туда. В тексте он пишет, что Result блокируется до тех пор, пока задача не будет завершена. И вот с целью показать это, он и воткнул туда Wait(). Мол смотрите, пока Result не разблокируется, ничего не увидете. Или же просто очепятка в книге, и надо было t1.Wait(); поставить сразу после t1.Start();. Это как минимум логично. Запустили задачу - ждем ее выполнения - считываем результаты. P.P.S. На всякий случай заглянул в английское издание. Мало ли чего наши могут написать, тем более натыкался уже на очепятки в листинге в русском издании. Но нет, в английском издании листинг такой же. Последний раз редактировалось max_prorok; 09.06.2016 в 16:49. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
книги.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
тестовый вопрос структура Task | KVANTA | Помощь студентам | 4 | 16.01.2015 19:39 |
Вопрос по Task.Factory.StartNew | Gregor | C# (си шарп) | 4 | 17.11.2014 20:05 |
wait, notifyAll | --Serega-- | Общие вопросы по Java, Java SE, Kotlin | 1 | 20.12.2011 10:12 |
ошибка lock conflict on no wait transaction | пауэрлифтинг | БД в Delphi | 1 | 28.05.2010 00:19 |