|
|
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Программа рассылки сообщений корпоративным пользователям компании должна рассылать сообщения только в определенное время, например, с 8 утра до 18 часов вечера. Так вот, такой код просто загружает проц на 15% Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. т.е. вместо Continue нужно поставить Код: pascal 1. XXX - это количество миллисекунд до 8 утра, когда настанет резрешенное время. или я все равно неправильно сделаю? Подскажите, как правильно усыпить поток и запустить из самого себя, так сказать? Ну и переписывать это всё не хочется. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:06 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 т.е. вместо Continue нужно поставить Код: pascal 1. XXX - это количество миллисекунд до 8 утра, когда настанет резрешенное время. X11 Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:12 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Почитай что такое WAIT_ABANDONED. Это точно не то, что тебе нужно неа, пока не понял.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:16 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ использовать WaitableTimer это оно? https://gist.github.com/perevoznyk/1f554a2bd4b7523701c6d9e26dc7a473 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:18 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 неа, пока не понял.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:20 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 это оно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:24 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ X11 это оно? В общем-то для этой задачи достаточно одного обычного эвента (который уже есть). Ждать по 60 секунд, после ожидания - проверять Terminated, если не выход - проверять насписание, если пора - отправлять почту, нет - Continue. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:36 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 _Vasilisk_ Почитай что такое WAIT_ABANDONED. Это точно не то, что тебе нужно неа, пока не понял.. А так - не важно, что он вернет - таймаут или сработку - на Terminated проверять всё равно надо и лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:39 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11, а чем тебя не устраивают паузы в стиле: Код: pascal 1. 2. Проц не грузит, служба не зависает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 00:49 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Sleep(1000) перед Continue да и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 01:09 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
asutp2Проц не грузит Ещё как грузит, просто ты за своими гигагерцами это не замечаешь. Посмотри в ProcessExplorer счётчики переключения контекстов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 01:25 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov asutp2Проц не грузит Ещё как грузит, просто ты за своими гигагерцами это не замечаешь. Посмотри в ProcessExplorer счётчики переключения контекстов. Когда диспетчер задач непрерывно показывает ЦП 0% у сервиса с подобной реализацией простоя, действительно сложно заметить :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 05:31 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 _Vasilisk_ использовать WaitableTimer это оно? https://gist.github.com/perevoznyk/1f554a2bd4b7523701c6d9e26dc7a473 такс... а тут используется Application.ProcessMessages; а для потоков это норм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 09:49 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ И liDueTime.QuadPart тебе удобнее будет использовать положительный. Так сразу можно установить время срабатывания Т.е. просто минус убрать? или еще что-то менять надо? И что значит "Так сразу можно установить время срабатывания"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 09:51 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 X11 такс... а тут используется Application.ProcessMessages; а для потоков это норм? это почти везде не норм, а для потоков это мрак и дичь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 09:53 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
т.е. ту функцию уже точно нельзя использовать. другие советы тоже под вопросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 09:59 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 10:10 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
А виндовый планировщик не хочешь использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 10:18 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
мне бы что-то попроще потому что наворотить такой код, в котором я долго не смогу разобраться и понять, что там к чему, не очень хотелось бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 10:31 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Можно так: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 10:46 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 _Vasilisk_ использовать WaitableTimer это оно? https://gist.github.com/perevoznyk/1f554a2bd4b7523701c6d9e26dc7a473 когда задействовал эту функцию Wait() то madExcept по завершеню работы программы выдал просто ТУЧУ resource leaks ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 10:48 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
X11 Так вот, такой код просто загружает проц на 15% Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Такой код грузит свое ядро на 100%. А то что винда показывает около 15 - так это потому что проц многоядерный. 15% примерно соответствует Intel Core i7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 11:02 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
ProcessExplorer Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 11:20 |
|
||
|
Как правильно заморозить поток из самого себя?
|
|||
|---|---|---|---|
|
#18+
Ох... Не грузит процессор, ожидает сообщения, минимум памяти, без обратной связи (но сделать просто). Можно сделать массив с 1000 потоками и раскидывать между ними сообщения. Расписание нужно организовывать в основном потоке, а эти - только для работы/отправки. Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2021, 11:21 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40050100&tid=2037553]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 519ms |

| 0 / 0 |
