|
|
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
Всем привет! Уже полдня бодаюсь с какой-то неведомой чушью... task: ITask; 1. Запускаю задачу task:= TTask.Run(procedure begin sleep(10000) end); 2. Отменяю задачу task.Cancel; Тут мне надо подождать , пока задача выполнится 3. task.Wait; И вместо того, чтобы подождать задачу и выстрелить exception Operation Canceled, происходит сразу выброс этого исключения, что совсем не в тему. Я дурак или лыжи не едут? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 14:48 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 22:28 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
X-Cite, Древенеславянские программисты говаривали в таких случаях, - видит око, да зуб неймет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 00:32 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
Обидно, слющай... Подумывал, обновиться до последнего релиза, а тут такая бага и не закрытая. А у меня уже не один проект на PPL с костылями, а как-то Omni тащить не хочется... Видимо, придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 00:37 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
hottabych31а как-то Omni тащить не хочется... Видимо, придется. А разве в Omni можно отменить уже выполняющуюся задачу?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 10:35 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
А это точно не by design? Зачем ждать отменённую задачу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:29 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
У людей ассоциация с "TThread.Terminate" небось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:41 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
GunSmoker, Может и by design... У меня из главного потока создавалась задача. Задача синхронизировалась с главным потоком и дергала VCL + дргие объекты главного потока. И, чтобы при закрытии формы не вылетал access violation, я при закрытии формы хотел отменить задачу, подождать пока завершится цикл (обработавший флаг TtaskStatus.tsCanceled), и тогда убить владельца задачи. Может быть я не прав и задача не должна зависеть от владельца (или делать проверки на nil), тем не менее, семантика ITask мне не очень понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:41 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
Вроде понятная же семантика? Если задача отменена, то результат её выполнения известен: нет результата, отменена задача. Соответственно, и ждать наперёд известного результата незачем. Это всё равно что Sleep(20000) в программу вставить. А вы пытаетесь несколько иные технические вопросы решить. Вроде как есть два варианта: 1. Перед обращением к глобальным / расшаренным данным проверять их наличие / корректность (не забывая про блокировку / синхронизацию). 2. Использовать какой-нибудь иной признак окончания фоновой работы. Тут я не подскажу, ибо без понятия, кто это такой: PPL и TTask. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 16:41 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
В Omni это красиво сделано... //FTask: IOmniTaskControl; Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 17:40 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
GunSmokerТут я не подскажу, ибо без понятия, кто это такой: PPL и TTask. Никак не ожидал услышать это от вас. А через что вы работаете с многопоточностью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 17:43 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
hottabych31Никак не ожидал услышать это от вас. А через что вы работаете с многопоточностью? Подозреваю, что с помощью потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 17:58 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
YuRockhottabych31Никак не ожидал услышать это от вас. А через что вы работаете с многопоточностью? Подозреваю, что с помощью потоков.+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 17:59 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
YuRock, Только хардкор, только голый WinApi! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 18:03 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
hottabych31, мой код должен работать в Delphi 5, так что большинство нововведений проходят мимо меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 18:10 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
GunSmokerмой код должен работать в Delphi 5, так что большинство нововведений проходят мимо меняЖесть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 02:57 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
white_niggerGunSmokerмой код должен работать в Delphi 5, так что большинство нововведений проходят мимо меняЖесть... Жесть потому что DevExpress с D5 уже не работают - угадал?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 07:11 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
подованwhite_niggerпропущено... Жесть... Жесть потому что DevExpress с D5 уже не работают - угадал?? и не только лишь с D5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 07:21 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
практически все коробочные "нововведения" давным давно существуют в виде сторонних либ к-е как правило лучше эмбракодела, так что я гораздо сильнее удивляюсь когда удивляются тому что ув. GunSmoker не юзает "вдруг" коробочный ttask. да у него своего добра и вероятно гораздо лучшего в ассортименте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 08:35 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
подованЖесть потому что DevExpress с D5 уже не работают - угадал?? Неа. Жесть - потому что жесть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 09:08 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
white_niggerGunSmokerмой код должен работать в Delphi 5, так что большинство нововведений проходят мимо меняЖесть...ну а чё, норм - он же системщик как я понимаю, ему пофиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 09:10 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)ну а чё, норм - он же системщик как я понимаю, ему пофигДа причём тут системщик. Я просто хорошо помню когда приходилось поддерживать зоопарк версий. Там много неочевидного гемора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 09:15 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)white_niggerпропущено... Жесть...ну а чё, норм - он же системщик как я понимаю, ему пофиг Тсссс, а то сейчас Жадика вызовешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 09:15 |
|
||
|
Баг или фича в PPL. TTask.Cancel & Wait
|
|||
|---|---|---|---|
|
#18+
white_niggerЯ просто хорошо помню когда приходилось поддерживать зоопарк версий. Там много неочевидного гемора На самом деле, если VCL и компоненты не трогать, то не так уж много запар. Сделать модуль, куда скопировать недостающий функционал. А вот D4 и D3, и уж тем более билдер 5-6 - это ****** просто. Да хотя бы: просто немеренно времени угроблено на устранение крашей компилятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 12:57 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39642993&tid=2040906]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 469ms |

| 0 / 0 |
