Блог. Двадцать пять лет Делфи-практики
В этом блоге я буду публиковать ответы на вопросы, которые постоянно приходится повторять на форуме.
Здесь можно это сделать более развернуто и спокойно.
Все, что здесь написано, не является истиной в последней инстанции, скорее, это результат моих размышлений над архитектурой проектов, маленьких и больших, которых я сделал на Делфи более дюжины.
Начав с Делфи-2 двадцать пять лет назад, я прошел все версии, испробовал массу технологий, включая работу с БД, с графикой DirectX, связью с серверами и интернетом, разработку на Андроид и IOS, и многое, многое другое.
________________________________________ ________________________________________ ____
P.S. все, о чем здесь написано, всего лишь измышления из головы.
совпадения с реальными людьми и фактами случайны.
В этом блоге я буду публиковать ответы на вопросы, которые постоянно приходится повторять на форуме.
Здесь можно это сделать более развернуто и спокойно.
Все, что здесь написано, не является истиной в последней инстанции, скорее, это результат моих размышлений над архитектурой проектов, маленьких и больших, которых я сделал на Делфи более дюжины.
Начав с Делфи-2 двадцать пять лет назад, я прошел все версии, испробовал массу технологий, включая работу с БД, с графикой DirectX, связью с серверами и интернетом, разработку на Андроид и IOS, и многое, многое другое.
________________________________________ ________________________________________ ____
P.S. все, о чем здесь написано, всего лишь измышления из головы.
совпадения с реальными людьми и фактами случайны.
Про "таски"
Запись от krapotkin размещена 03.03.2021 в 08:37
Показов 4712
Комментарии 0
Метки delphi
|
Про TThread стало понятнее. Давайте про TTask поговорим. Обычно все начинают с чтения этого блога. Там все написано хорошо, но иногда остаются вопросы. Про таски надо размышлять так: видали в полицейских боевиках брифинг перед операцией? вот это то же самое мы проводим брифинг, раздаем каждому задачи, кто что БУДЕТ делать потом говорим - все! пошли! и они уходят а мы остаемся в своем главном потоке поэтому писать TTask.WaitForAll(tasks); - это плохо поток встал и ждет когда все вернутся более нормальный способ - это сделать новое поле формы
у каждой технологии есть свои области применения поэтому нельзя сказать. что что-то лучше, что-то хуже надо добавлять "... для выполнения вот этой вот задачи" если надо по-быстрому что-то несложное выполнить в потоке - да, таски самое то. я постоянно ими пользуюсь НО у них есть ограничения. Вернемся на брифинг. Вот ребята, на стене фото преступников, их надо поймать! Все за работу! И тут выясняется, что работать они убежали наружу, а фото так и остались в комнате на стене! Т.е. если у вас есть локальная переменная, ее в тасках использовать получится не всегда. Там есть целая наука про захват переменных, почитаете потом. Но в целом считайте, что ваши фото в кабинете недоступны. Их надо поместить например, на внешний сервер (сделать глобальную переменную, но лучше поле формы) чтобы все могли их получить. Как вы понимаете, под капотом у тасков те же треды, что и ранее, только синтаксис упрощен, чтобы можно было на ходу какие-то вещи делать. Но в целом, если вам надо выполнить какие-то более-менее сложные вещи, и требуются параметры, лучше завести отдельный класс, как написано в том месте... ---------------------------------------------------------- Пример: Казалось бы:
А вот НЕТ! Это работать не будет. Всегда помним, что это начнет работать только ПОТОМ, скорее всего когда мы уже даже выйдем из процедуры! Поэтому никакой переменной I уже не будет и FUrlList[i] будет полной бессмыслицей так что никаких параметров внутрь вам не передать. сорри. | ||||||||||||||||||||
Метки delphi
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


