|
|
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Спасибо, но ничего я выкидывать не буду, пока всё работает нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:22 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 а вот если нужно принудительно остановить работу потока: Код: pascal 1. 2. 3. 4. Замени это на FreeAndNil( SendNotifyThread ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:22 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 Спасибо, но ничего я выкидывать не буду, пока всё работает нормально Зачем нам вопросы задавать, если лучше нас знаешь, как лучше. П.С. Работает хоть как-то - очень случайно, это не нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:24 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
YuRock Замени это на FreeAndNil( SendNotifyThread ); Ты ведь даже не знаешь, что делает StopSendNotify(), а требуешь это убрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:28 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 YuRock Замени это на FreeAndNil( SendNotifyThread ); Ты ведь даже не знаешь, что делает StopSendNotify(), а требуешь это убрать Конечно же я знаю, что это такое. Протёр свой шар с утра. Если эта переменная не полностью бесполезна и не только дублирует Terminated, то перенеси ее в деструктор (возле Terminate;), да и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:33 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
YuRockОсвобождение объекта (или хэндла) эвента - после inherited Destroy (после этого Execute уже гарантированно завершен). Да ну? Это ты гарантируешь вызовом Terminate и SetEvent в деструкторе ?.. Ню-ню... Раздел Рустама всегда полон людей, стреляющих себе в ногу, выходящих в окно и делающих прочие самоубийственные глупости в стиле мистера Бина. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:50 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov YuRockОсвобождение объекта (или хэндла) эвента - после inherited Destroy (после этого Execute уже гарантированно завершен). Да ну? Это ты гарантируешь вызовом Terminate и SetEvent в деструкторе ?.. Ню-ню... Раздел Рустама всегда полон людей, стреляющих себе в ногу, выходящих в окно и делающих прочие самоубийственные глупости в стиле мистера Бина. Я это гарантирую вызовом inherited Destroy, в котором вызывается WaitFor. Dimitry Sibiryakov Раздел Рустама всегда полон людей, стреляющих себе в ногу, выходящих в окно И любителей пукнуть в лужу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:53 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Эмм, из простейшей задачи раздули в непойми что))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:56 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
asutp2 Эмм, из простейшей задачи раздули в непойми что))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:57 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
asutp2 Эмм, из простейшей задачи раздули в непойми что))) я в шоке просто ну да ,я пока решил вопрос с помощью Код: pascal 1. 2. хоть это и некорректно может быть, но проц не грузит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 16:00 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 asutp2 Эмм, из простейшей задачи раздули в непойми что))) я в шоке просто ну да ,я пока решил вопрос с помощью Код: pascal 1. 2. хоть это и некорректно может быть, но проц не грузит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 16:13 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Это ты гарантируешь вызовом Terminate и SetEvent в деструкторе ?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 18:55 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_А в чем проблема? FreeOnTerminate. Деструктор вызывается уже после того, как Execute завершилось. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 19:03 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov FreeOnTerminate. Деструктор вызывается уже после того, как Execute завершилось. Главное, чтобы Event не закрыли по выходу из Execute ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 21:12 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 asutp2 Эмм, из простейшей задачи раздули в непойми что))) я в шоке просто ну да ,я пока решил вопрос с помощью Код: pascal 1. 2. хоть это и некорректно может быть, но проц не грузит Рекомендую все-таки почитать статью по многопоточному программированию. Сколько ещё лет можно не разбираться с этой темой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 23:38 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ кроме лишних телодвижений Так-то я давно наследника написал с созданием в конструкторе этого эвента и этими тремя (четырьмя, с освобождением эвента после inherited) строчками в деструкторе. И использую его если не всегда, то почти всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 00:27 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Читал только часть последней страницы - если извне объект потока "трогают", то никаких FreeOnTerminate. PS: если есть хоть малейшее недопонимание TThread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 00:30 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev, ну вроде бы нету, даже syncronize не использую за ненадобностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 09:51 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
YuRock Каких лишних? Terminate лишний, потому что он есть в Destroy? Так он нужен обязательно до SetEvent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 14:11 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ YuRock Каких лишних? Terminate лишний, потому что он есть в Destroy? Так он нужен обязательно до SetEvent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 15:23 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
asutp2Это флаг, который регулирует поведение при остановке потока. Прааавильно. А тепепь попробуй подумать когда и откуда будет вызываться деструктор потока если этот флаг установлен. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 15:32 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а что думать? смотрим функцию ThreadProc в System.Classes.pas, там всё очевидно: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Соответственно FreeOnTerminate проверяется после завершения работы Thread.Execute, со всеми вытекающими. Другой вопрос, что если у потока флаг FreeOnTerminate установлен, то хранить ссылку на него и обращаться по ней чревато экспешенами, т.к. поток может завершится в произвольный момент и сохраненные ссылки на него станут невалидными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 16:00 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
О чём, собственно, тут и говорилось всю последнюю страницу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 16:05 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ YuRock Каких лишних? Terminate лишний, потому что он есть в Destroy? Так он нужен обязательно до SetEvent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 16:15 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40050372&tid=2037553]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 524ms |

| 0 / 0 |
