|
|
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11, тебе дали 100% работающий код, а ты булькаешь не посмотрев его? Или тут сложные конструкции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 11:24 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
rgreat Sleep(1000) перед Continue да и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 11:52 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 такс... а тут используется Application.ProcessMessages; а для потоков это норм? X11 Т.е. просто минус убрать? или еще что-то менять надо? И что значит "Так сразу можно установить время срабатывания"? X11 когда задействовал эту функцию Wait() то madExcept по завершеню работы программы выдал просто ТУЧУ resource leaks ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 12:43 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
YuRock Смысла нет, если можно заменить на Wait(1000) и не ждать секунду при закрытии. я написал, что после Wait madExcept выдает кучу leaks ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 13:02 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 я написал, что после Wait madExcept выдает кучу leaks я так понял, что если завершить работу приложения во время Wait(), то не выполняется деструктор потока и куча объектов тоже не удаляется поэтому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 13:37 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
YuRock, Секунду перед закрытием можно и подождать. Ничего страшного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 13:46 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Подождать до утра? Цель Wait() ждать до назначенного времени, например, до 8ми утра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 13:48 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Получается, что внутрь Wait нужно куда-то втиснуть корректно деструктор Destroy? Когда я закрываю программу, то вот эта бряка не выполняется. Я имею ввиду, что при закрытии программы, всё что после Wait не выполняется. Т.е. нужно как-то заставить поток завершаться корректно, с выполнением деструктора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:02 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
wadman тебе дали 100% работающий код, а ты булькаешь не посмотрев его? Или тут сложные конструкции? Извини, к своему сожалению я там не нашел чего-то легко исправит мою проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:04 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11, а чем тебя не устроил предложенный мной вариант? Чуть измененный твой код. 22288865 Тикает раз в 5 сек, вне диапазона времени рассылки снова ждет, во время рассылки делает действие и после этого ждет. Чтобы не ожидая, закончить работу, "взводишь" событие из основного потока. Да, вариант не универсальный, а для конкретного случая, при других временных константах может быть будет не очень хорош, но при этих условиях решает задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:11 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 YuRock Смысла нет, если можно заменить на Wait(1000) и не ждать секунду при закрытии. я написал, что после Wait madExcept выдает кучу leaks Я не знаю, что такое madExcept. Так или иначе, утечки ресурсов происходят в одном единственном случае: если забывать их освобождать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:20 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 X11 я написал, что после Wait madExcept выдает кучу leaks я так понял, что если завершить работу приложения во время Wait(), то не выполняется деструктор потока и куча объектов тоже не удаляется поэтому. завершить работу приложения во время Wait невозможно. Разве что TerminateProcess или ExitProcess. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:22 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
rgreat YuRock, Секунду перед закрытием можно и подождать. Ничего страшного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:23 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
YuRock завершить работу приложения во время Wait невозможно. Разве что TerminateProcess или ExitProcess. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:24 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
rgreatИ зачем ты тогда предлагаешь wait? В надежде, что топикстартер не полный идиот и догадается ждать не просто время, а сигнал "завершись". Хотя мог бы уже понять... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:29 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
rgreat YuRock завершить работу приложения во время Wait невозможно. Разве что TerminateProcess или ExitProcess. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:33 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, я пытаюсь понять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:36 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
YuRock льзовании Wait (в отличие от Sleep) перед завершением приложения можно выйти из Wait. т.е. Until (lBusy = WAIT_OBJECT_0) or (lBusy <> ???); т.е. что правильно подставить вместо ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:44 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 YuRock льзовании Wait (в отличие от Sleep) перед завершением приложения можно выйти из Wait. т.е. Until (lBusy = WAIT_OBJECT_0) or (lBusy <> ???); т.е. что правильно подставить вместо ??? Ничего не подставить. Просто Wait и всё. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. А в деструкторе потока: Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:53 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Что-то я вообще запутался. Как я ранее писал, Destroy не выполняется. и зачем там Terminate и SetEvent? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 14:58 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 Как я ранее писал, Destroy не выполняется. X11 и зачем там Terminate и SetEvent? Terminate - чтобы свойство Terminated стало =True. SetEvent - чтобы прервался Wait. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:00 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
И чтобы потом вся это кривобайда упала на обращении к освобождённому объекту. Великолепно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:11 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
создание Код: pascal 1. 2. 3. 4. 5. 6. деструктор вызывается, если выполнить SendNotifyThread.Terminate; вот код при закрытии приложения: Код: pascal 1. 2. 3. 4. 5. 6. а вот если нужно принудительно остановить работу потока: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:15 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov И чтобы потом вся это кривобайда упала на обращении к освобождённому объекту. Великолепно. Или ты о чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:16 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 Код: pascal 1. 1. У тебя в потоке вечный цикл. Какой нахрен FreeOnTerminate??? Убери это. Как и CreateSuspended=True - только лишняя строка Start из-за этого (ее тоже выкинь). Все создавай в конструкторе потока. 2. Весь свой код при завершении приложения выкинь, замени его на одну строку - SendNotifyThread.Free ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 15:20 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40050350&tid=2037553]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 531ms |

| 0 / 0 |
