|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Разбор Потоков. Моё решение
Я тут задумался о многопоточности приложения, а стандартный метод мне как-то не понравился. И как обычно я полез в дебри....
В итоге получился вот такой модуль. Что-же он может:
WaitForSingleObject - Ловит поток. ResetEvent - Останавливает поток. SetEvent - Запускает поток. ----------------------------------------------------------- Коментарии от Гуру приветствуются. Может есть ошибки, а они скорей всего есть! 11011111 INED Home code VK Последний раз редактировалось ined, 13.12.2016 в 15:26. |
#2
|
||||
|
||||
Для чего это нужно? Для каких задач может быть пригодно?
Лично я, например, пользуюсь пулами, объекты-потоки, как таковые, не использую вообще, управление потоками соуществляю через стандартный монитор потоков. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 13.12.2016 в 15:36. |
#3
|
||||
|
||||
Данный модуль создан в познавательных целях. Так как о потоках в интернете маловато нормальной инфы.
Если есть конкретная критика по модулю или я где-то сделал ошибку в коде, пишите. 11011111 INED Home code VK |
#4
|
||||
|
||||
Плохой у вас интернет значит.
Итак, критика: 1. при создании потока необходимо передавать указатель на процедуру и указатель на параметры — не очень удобно, удобнее было бы сделать замыкания.при создании потока необходимо передавать указатель на процедуру и указатель на параметры — не очень удобно, удобнее было бы сделать, как минимум, замыкания (2010 дельфи должна это уметь); 2. после создания потока на выходее имеем некий идентификатор, который банально можно потерять или он как-то изменится по ошибке, тоже не очень удобно, быыло бы удобнее это обернуть как минимум в некий класс (становится похоже на реализацию класса tthread, не так ли?); 3. если я работаю с критической секцией и мне необходимо приостановить поток до возникновения сигнала — как я это реализую приведенными тобой api (в частности, как мне помогут ф-ии PlayThread и StopThread)? 4. ф-я DestroyThread не дает понятия, что он делает, прерывает выполнение потока с завершением, или же высвободает хендл потока, и надо эту ф-ю использовать в try finally блоке? 5. в каком случае нужен StartСycleThread? 6. будет ли код компилироваться под х64 и другие платформы? ну и 7-е: каким образом это может понять новичкам принципы работы с потоками и чем это лучше «отсутствующей» нормальной документации по потокам? — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
||||
|
||||
Ещё раз повторюсь. Модуль создан в познавательных целях.
Это означает что его удобство в использовании и возможность его как-то применить не обсуждаются. У каждого подход к потокам разный. Кто-то пользуется классом tThread, а кто-то просто CreateThread. Попытка показать, что вы негативно относитесь к данному "Велосипеду", вам удалась, но всё-же. Ближе к теме. 11011111 INED Home code VK |
#6
|
||||
|
||||
Ну если ближе к теме, то ответ «плохо» устроит?
Перечень замечаний я выдал, ты отмазался на них отвечать, дальше чего обсуждать, если ты не можешь за свой код ответить? Потому см. строку 1. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 13.12.2016 в 16:56. |
#7
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |