| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Про потоки |
| Автор: bagos 12.12.2010, 20:41 |
| Господа знающие, подскажите, как грамотней писать потоки? стоит ли использовать имеющийся в дельфях класс, или использовать винапи? какие плюсы минусы? |
| Автор: kami 12.12.2010, 20:45 |
грамотность написания потоков зависит не от выбранного метода реализации, а от радиуса кривизны рук программиста. И дальше пойдут только имхо, основанные на личных предпочтениях. Мне, например, проще и удобнее с TThread. |
| Автор: bagos 12.12.2010, 22:08 |
| Дабы не создавать еще одну тему напишу тут, что мне требуется сделать. В течении года делал для начальника небольшие простенькие программки. По логике и интерфейсу все программы очень просты и не емки. На форме может на ходится пару тройку эдитов, мемо и пару лейблов, пару кнопок. Задаются параметры в эдиты в мемо выводится результаты, где то нет эдитов а есть другие компоненты управления и ввода, не суть. Вообщем таких программок около 100, начальник хочет чтобы я сделал теперь отдельную программу, только чтобы эти программы подключались отдельно. Вообщем переводя на наш язык хочет поддержку подключаемых модулей в одной программе. Да так чтобы эти модули открывались в отдельном окне, но при этом не хочет чтобы каждая программа была отдельным исполняемым файлов. Некоторые программы делают долгие временные рассчеты, от 2 мин до часу. По программа не спрашивайте там сам черт не разберет что к чему. Меня интересует ваше мнение по-поводу создания подобной системы. Начну вопросы по порядку: 1. Вопрос как и где содержать формы в подключаемых модулях, какие сущ. решения, варианты? 2. Должны ли подключаемые модули(формы), открываться в отдельном потоке? 3. Некоторые программки должны будут брать параметры и/или использовать функцию которая находится в главной программе и также посылать ей некоторые данные. С уважением, bagos |
| Автор: bems 12.12.2010, 22:29 |
| Формы в потоки не выноси, нормально работать это не будет |
| Автор: bagos 12.12.2010, 23:01 |
| Поиски в интернете дали что формы в длл держать не правильно и работать это будет не айс, от использования bpl также отказываюсь. Какие будут идеи? |
| Автор: aleksh 12.12.2010, 23:36 |
юзать фреймы |
| Автор: bagos 12.12.2010, 23:47 |
| Что за фреймы, будьте добры поподробней. |
| Автор: pseud 13.12.2010, 10:35 |
читай про плагины (dll) очень даже айс |
| Автор: Poseidon 13.12.2010, 17:32 |
| Я бы сказал так, имеющийся класс использовать нужно. http://forum.vingrad.ru/forum/topic-60076/hl/tthread/index.html. |
| Автор: _Dimon_ 13.12.2010, 18:32 | ||
Спасибо Poseidon, очень полезная ссылочка |
| Автор: imageman 13.12.2010, 22:40 |
| для обмена информацией между модулями я обычно использую отдельный юнит под названием GlobalVars (ну или GlobalUnit) - этот .pas файл упоминаешь в uses в каждом модуле-форме и можно использовать общие переменные. Только для dll это ведь не будет работать? Может для dll можно сделать отдельную GlobalVars.dll? |
| Автор: cat512 14.12.2010, 01:28 | ||
Хотелось бы услышать аргументы против bpl. |
| Автор: Poseidon 14.12.2010, 17:53 |
| bems, это наверно новое слово в программировании. Что мы с тобой, два старпера, понимаем в современном кодинге? |
| Автор: bems 14.12.2010, 18:59 |
| Poseidon, вообще для полного труъ это должен быть inc-файл |
| Автор: imageman 14.12.2010, 22:19 | ||
а поподробнее? Как это делаете вы? Как удобнее сделать обмен информацией между разными unit внутри одной программы? Как удобнее сделать обмен информацией между разными dll? Как удобнее сделать обмен информацией между разными exe? Как удобнее сделать обмен информацией между разными машинами в пределах локальной сети? Как удобнее сделать обмен информацией между разными машинами через интернет? |
| Автор: kami 14.12.2010, 23:28 |
Метод, который применим в конкретном случае определяется исходя из конкретной задачи/архитектуры приложения. http://msdn.microsoft.com/en-us/library/aa365574(v=vs.85).aspx Универсального метода не может быть, с некоторыми ограничениями на него могут претендовать (имхо) только сокеты. Но во многих случаях их применение избыточно. |
| Автор: bems 15.12.2010, 05:20 | ||||||
Использовать секции экспорта. Интерфейс продумывать. Включать в обе длл одни и те же юниты можно, но всё так же избегать глобальных состояний. Разумеется у разных копий юнита в разных длл будут разные копии данных юнита MMF, пайпы, сокеты
|