Доброго вечера.
Вопрос следующий:
есть 2 потока, каждый выполняет свою задачу, как с узнать что оба потока завершили свою работу? Не с помощью ли компонента Events? (Netspirit, http://forum.hiasm.com/post/269657).
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
|
Разработчик
Ответов: 26214
Рейтинг: 2138
|
|||
Gunnman писал(а): есть 2 потока, каждый выполняет свою задачу, как с узнать что оба потока завершили свою работу?Так вроде у потоков точка есть специальная для этого
Редактировалось 2 раз(а), последний 2018-08-24 22:35:31 |
|||
карма: 22 |
|
Ответов: 4639
Рейтинг: 755
|
|||
1) Можно с помощью Events - но для нескольких потоков нужно несколько Events и дожидаться сигнала от каждого
2) Можно у компонента Thread добавить точку Handle - тогда на ней можно делать WaitObject (избавляет от Events) Для себя делал компонент WaitMultiple - аналогично WaitObject, но верхние точки - динамические, можно ожидать сигнала от нескольких объектов за один раз (с параметром "ждать сигнала от всех" или от одного любого объекта) |
|||
карма: 26 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Netspirit писал(а): Для себя делал компонент WaitMultipleА чего не добавили... Вполне себе логичная обертка над WinApi. Можно даже предположить, что нереализуемая иными средствами. nesco, а ![]() Редактировалось 1 раз(а), последний 2018-08-26 21:35:26 |
|||
карма: 9 |
|
Разработчик
Ответов: 26214
Рейтинг: 2138
|
|||
Че, а? Я не против. Выкладывайте код, добавлю.
|
|||
карма: 22 |
|
Ответов: 655
Рейтинг: 18
|
|||
Netspirit, поделитесь вашим WaitMultiple пожалуйста
|
|||
карма: 0 |
|
Ответов: 4639
Рейтинг: 755
|
|||
карма: 26 |
| ||
файлы: 1 | WaitMultiple 2018-08-27 NS.zip [43.9KB] [476] |
Ответов: 655
Рейтинг: 18
|
|||
Netspirit, спасибо, буду разбираться.
п.с.nesco, если Netspirit, разрешит мб добавить его компонент к остальным компонентам? |
|||
карма: 0 |
|
Разработчик
Ответов: 26214
Рейтинг: 2138
|
|||
Добавил я его уже вместе с примером, проверяйте.
|
|||
карма: 22 |
|
Ответов: 4639
Рейтинг: 755
|
|||
Events и Sleep привести к человеческому виду не хочешь?
|
|||
карма: 26 |
|
Разработчик
Ответов: 26214
Рейтинг: 2138
|
|||
Netspirit писал(а): Events и Sleep привести к человеческому виду не хочешь?Вроде по Sleep не пришли к общему знаменателю. А Events разве обсуждали, в упор не помню? Тут надо послушать начальника транспортного цеха ![]() Редактировалось 1 раз(а), последний 2018-08-27 20:55:44 |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Вообще не понял, о чем это вы .................
|
|||
карма: 9 |
|
Разработчик
Ответов: 26214
Рейтинг: 2138
|
|||
Galkov писал(а): Вообще не понял, о чем это вы .................Когда-то вроде Sleep разбирали, что его менять надо, с тобой вместе, кстати. А вот про Event я, увы, ничего вспомнить не могу. |
|||
карма: 22 |
|
Ответов: 4639
Рейтинг: 755
|
|||
Events Mod 1-2.zip: убраны лишние точки, совместимость сохранена. При открытии существующих схем появится сообщение об отсутствующих точках, после пересохранения схемы исчезнет, работоспособность никак не поменяется.
(А комментарий в примере WaitMultiple - nesco пропустил) Sleep mod v1-3.zip: - выброшена точка doSleepMks - добавлена точка Delay - интерпретация Delay изменена с микросекунд на миллисекунды В связи с чем существующие схемы нужно переделать. Я очень не хочу цеплять совместимость с изначально корявой реализацией. Предлагаю просто забыть, что был когда-то такой старый компонент, у которого параметром doSleep были "такты" процессора, и был метод doSleepMks, у которого задержка измерялась микросекундами (на современных компьютерах примененный там способ задержки не давал никакой точности даже по сравнению с обычным sleep(), не говоря уже о микросекундах). Тем более, что старый вариант был практически неюзабельным по причине загрузки процессора, что ещё облегчает потерю совместимости. В случае применения исправления нужно выполнить поиск по примерам, использующим эти компоненты и поправить. То же - в справке по компонентам. |
|||
карма: 26 |
| ||
файлы: 1 | Sleep mod v1-3.zip [1KB] [481] |
Ответов: 4639
Рейтинг: 755
|
|||
Ну, и о чем молчим?
|
|||
карма: 26 |
|