
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.05.2018, 00:51
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Здравствуйте! Никак не могу додумать, как такое сделать. Прошу помощи! Такая задача: Есть thread #1 , в начале Execute которого создаю всякие вспомогательные COM-объекты, в конце их уничтожаю. Thread #1 обычно должен простаивать, ничего не делая. Но время от времени какой-нибудь thread #2/#3/#4/... должен остановиться, бросить этому thread #1 данные и ждать, пока тот их не обработает. После чего вызвавший thread #2/#3/#4/... продолжит свою работу, а thread #1 будет ждать нового задания заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 00:51
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 03:57
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Есть много способов: Interlocked функции, Event-ы, мьютексы, etc... Но вот в чем вопрос на зачем тебе этот поток, если во время его работы остальные потоки уснут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 08:27
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Thread #1 нужен потому, что: 1) это не должен быть главный thread 2) из-за COM объектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 08:47
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
С моей библиотекой - легко. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 08:55
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Thread, обычная же очередь, добавить просто калбак на завершение таска I/O Completion Ports Thread, обходишь косяки в RPC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 08:57
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
А что потоки 2_3_4 делают, кроме отправки задания и ожидания окончания? Нужны ли они? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 09:16
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Делают всякое, но, пожалуйста, давайте не будем отвлекать топик на это. Вопрос (просьба) помочь с кодом, как сделать эту задержку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 09:20
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
kealon(Ruslan)Thread, обычная же очередь, добавить просто калбак на завершение таска I/O Completion Ports Thread, обходишь косяки в RPC? Спасибо, посмотрю. Обхожу косяки ограниченности ресурсов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 10:24
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Thread, сделать поток с очередью сообщений и посылать туда сообщения из других потоков через SendMessage ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 11:17
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
ZeliusThread, сделать поток с очередью сообщений и посылать туда сообщения из других потоков через SendMessageога ..., и получить в полной красе то с чем он борется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 11:19
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
kealon(Ruslan)ZeliusThread, сделать поток с очередью сообщений и посылать туда сообщения из других потоков через SendMessageога ..., и получить в полной красе то с чем он борется еще раз перечитал - все соответствует поставленной задаче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 11:34
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Zeliusеще раз перечитал - все соответствует поставленной задаче Да 100% очередь нужна. Например, виндовая c SendMessage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 11:46
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Zeliuskealon(Ruslan)пропущено... ога ..., и получить в полной красе то с чем он борется еще раз перечитал - все соответствует поставленной задачеугу, особенно замечательно когда у тебя посыпятся "Canvas don't allow drawing" и прочие прелести вроде дедлоков на ровном месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 11:49
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
kealon(Ruslan)особенно замечательно когда у тебя посыпятся "Canvas don't allow drawing" и прочие прелести вроде дедлоков на ровном местеС каких делов они посыпятся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 12:10
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
YuRockС каких делов они посыпятся? MSDNThe sending thread is blocked until the receiving thread processes the message. However, the sending thread will process incoming nonqueued messages while waiting for its message to be processed. To prevent this, use SendMessageTimeout with SMTO_BLOCK set. For more information on nonqueued messages, see Nonqueued Messages. Если будешь использовать не из главного потока проблем особых не будет, но всё меняется... конкретно с "Canvas don't allow drawing" проблема в связке Код: pascal 1. 2. 3. 4. 5. 6. которая везде раскидана по VCL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 12:16
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Thread, ZeroMQ + REQ-REP по протоколу inproc. Кодировать три минуты, очередь искаропки, все бесплатно. Отправляется сообщение, сообщение поступает в очередь треда - воркера, ждём ответа. Воркер, завершив предыдущее задание, выгребают из очерди следующее, работает, отправляет ответ заказчику. Заказчик, отправив задание, спит до получения ответа воркера. Никаких семафоров, мьютексов и прочей дичи, только сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 12:22
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
kealon(Ruslan), Ну, значит тогда можно использовать SendMessageTimeout with SMTO_BLOCK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 12:35
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
YuRock, можно и так, но IOС Port всё равно проще и прозрачнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 12:38
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
kealon(Ruslan), ничё се проще :) ну кому как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 13:30
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
YuRockkealon(Ruslan), ничё се проще :) ну кому как. чуть переделать Код: 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. и сравни с SendMessage : класс зарегать, протянуть оконную процу, ещё схлопать с организацией завершением цикла ну его нафиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 14:16
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
ThreadВопрос (просьба) помочь с кодом, как сделать эту задержку. Ну, как-то то именно этому посвящена целая книга, если конечно делать все thread-like. А кроме книги есть еще куча материалов. А по вопросу... Чем не устраивает: Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 14:37
|
|||
|---|---|---|---|
|
|||
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
stanilarэтому посвящена целая книга PDF-версия http://web.archive.org/web/20120522180418/http://podgoretsky.com/ftp/Docs/Delphi/DX/Martin Harvey - Threads.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 14:37
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
stanilarА по вопросу... Чем не устраивает: Код: pascal 1. 2. 3. А что случится, если в этот момент я закрою окно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2018, 14:39
|
|||
|---|---|---|---|
Как организовать ожидание пока Thread не отработает задание |
|||
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=1355 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2040896]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 539ms |

| 0 / 0 |
