Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Про потоки 
:(
    Опции темы
bagos
Дата 12.12.2010, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Господа знающие, подскажите, как грамотней писать потоки? стоит ли использовать имеющийся в дельфях класс, или использовать винапи? какие плюсы минусы?

PM MAIL   Вверх
kami
Дата 12.12.2010, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(bagos @  12.12.2010,  20:41 Найти цитируемый пост)
как грамотней писать потоки?

грамотность написания потоков зависит не от выбранного метода реализации, а от радиуса кривизны рук программиста. И дальше пойдут только имхо, основанные на личных предпочтениях.
Мне, например, проще и удобнее с TThread.
PM MAIL WWW   Вверх
bagos
Дата 12.12.2010, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Дабы не создавать еще одну тему напишу тут, что мне требуется сделать.
В течении года делал для начальника небольшие простенькие программки. По логике и интерфейсу все программы очень просты и не емки.
На форме может на ходится пару тройку эдитов, мемо и пару лейблов, пару кнопок. Задаются параметры в эдиты в мемо выводится результаты, где то нет эдитов а есть другие компоненты управления и ввода, не суть. Вообщем таких программок около 100, начальник хочет чтобы я сделал теперь отдельную программу, только чтобы эти программы подключались отдельно. Вообщем переводя на наш язык хочет поддержку подключаемых модулей в одной программе. Да так чтобы эти модули открывались в отдельном окне, но при этом не хочет чтобы каждая программа была отдельным исполняемым файлов.
Некоторые программы делают долгие временные рассчеты, от 2 мин до часу. По программа не спрашивайте там сам черт не разберет что к чему. Меня интересует ваше мнение по-поводу создания подобной системы. Начну вопросы по порядку:
1. Вопрос как и где содержать формы в подключаемых модулях, какие сущ. решения, варианты?
2. Должны ли подключаемые модули(формы), открываться в отдельном потоке?
3. Некоторые программки должны будут брать параметры и/или использовать функцию которая находится в главной программе и также посылать ей некоторые данные.
С уважением, bagos
PM MAIL   Вверх
bems
Дата 12.12.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Формы в потоки не выноси, нормально работать это не будет


--------------------
Обижено школьников: 8
PM MAIL   Вверх
bagos
Дата 12.12.2010, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Поиски в интернете дали что формы в длл держать не правильно и работать это будет не айс, от использования bpl также отказываюсь. Какие будут идеи?
PM MAIL   Вверх
aleksh
Дата 12.12.2010, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 3
Всего: 13



Цитата(bagos @  12.12.2010,  22:01 Найти цитируемый пост)
 Какие будут идеи

юзать фреймы
PM MAIL   Вверх
bagos
Дата 12.12.2010, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Что за фреймы, будьте добры поподробней.
PM MAIL   Вверх
pseud
Дата 13.12.2010, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(bagos @  12.12.2010,  22:08 Найти цитируемый пост)
чтобы эти программы подключались отдельно

читай про плагины (dll)
Цитата(bagos @  12.12.2010,  23:01 Найти цитируемый пост)
формы в длл держать не правильно и работать это будет не айс,

очень даже айс


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Poseidon
Дата 13.12.2010, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(bagos @  12.12.2010,  20:41 Найти цитируемый пост)
стоит ли использовать имеющийся в дельфях класс
Я бы сказал так, имеющийся класс использовать нужно. Вот, почитай.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
_Dimon_
Дата 13.12.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 25.6.2007
Где: Украина

Репутация: нет
Всего: 1



Цитата(Poseidon @  13.12.2010,  17:32 Найти цитируемый пост)
Я бы сказал так, имеющийся класс использовать нужно. Вот, почитай.

Спасибо Poseidon, очень полезная ссылочка
PM MAIL   Вверх
imageman
Дата 13.12.2010, 22:40 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.9.2004

Репутация: 1
Всего: 1



 для обмена информацией между модулями я обычно использую отдельный юнит под названием GlobalVars (ну или GlobalUnit) - этот .pas файл упоминаешь в uses в каждом модуле-форме и можно использовать общие переменные. Только для dll это ведь не будет работать?

Может для dll можно сделать отдельную GlobalVars.dll?
PM MAIL   Вверх
cat512
Дата 14.12.2010, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



Цитата(bagos @ 12.12.2010,  23:01)
Поиски в интернете дали что формы в длл держать не правильно и работать это будет не айс, от использования bpl также отказываюсь. Какие будут идеи?

Хотелось бы услышать аргументы против bpl.

PM MAIL   Вверх
bems
Дата 14.12.2010, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(imageman @  13.12.2010,  22:40 Найти цитируемый пост)
для обмена информацией между модулями я обычно использую отдельный юнит под названием GlobalVars (ну или GlobalUnit) - этот .pas файл упоминаешь в uses в каждом модуле-форме и можно использовать общие переменные. 
Это ужасно



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Poseidon
Дата 14.12.2010, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



bems, это наверно новое слово в программировании. Что мы с тобой, два старпера, понимаем в современном кодинге?  smile 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
bems
Дата 14.12.2010, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Poseidon, вообще для полного труъ это должен быть inc-файл


--------------------
Обижено школьников: 8
PM MAIL   Вверх
imageman
Дата 14.12.2010, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.9.2004

Репутация: 1
Всего: 1



Цитата(bems @ 14.12.2010,  02:22)
 
Цитата(imageman @  13.12.2010,  22:40 Найти цитируемый пост)
для обмена информацией между модулями я обычно использую отдельный юнит 
Это ужасно

 а поподробнее?

Как это делаете вы?

Как удобнее сделать обмен информацией между разными unit внутри одной программы?
Как удобнее сделать обмен информацией между разными dll?
Как удобнее сделать обмен информацией между разными exe?
Как удобнее сделать обмен информацией между разными машинами в пределах локальной сети?
Как удобнее сделать обмен информацией между разными машинами через интернет?
PM MAIL   Вверх
kami
Дата 14.12.2010, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(imageman @  14.12.2010,  22:19 Найти цитируемый пост)
Как удобнее сделать обмен 

Метод, который применим в конкретном случае определяется исходя из конкретной задачи/архитектуры приложения.
IPC
Универсального метода не может быть, с некоторыми ограничениями на него могут претендовать (имхо) только сокеты. Но во многих случаях их применение избыточно.
PM MAIL WWW   Вверх
bems
Дата 15.12.2010, 05:20 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(imageman @  14.12.2010,  22:19 Найти цитируемый пост)
Как удобнее сделать обмен информацией между разными unit внутри одной программы?
Использовать интерфейсные секции юнитов. интерфейс продумывать. Глобальных переменных не делать.

Цитата(imageman @  14.12.2010,  22:19 Найти цитируемый пост)
Как удобнее сделать обмен информацией между разными dll?
Использовать секции экспорта. Интерфейс продумывать. Включать в обе длл одни и те же юниты можно, но всё так же избегать глобальных состояний. Разумеется у разных копий юнита в разных длл будут разные копии данных юнита

Цитата(imageman @  14.12.2010,  22:19 Найти цитируемый пост)
Как удобнее сделать обмен информацией между разными exe?
MMF, пайпы, сокеты

Цитата(imageman @  14.12.2010,  22:19 Найти цитируемый пост)
Как удобнее сделать обмен информацией между разными машинами в пределах локальной сети?
пайпы, сокеты, MMF для расшаренного файла (сомнительно, но допустимо)

Цитата(imageman @  14.12.2010,  22:19 Найти цитируемый пост)
Как удобнее сделать обмен информацией между разными машинами через интернет? 
сокеты, веб


Это сообщение отредактировал(а) bems - 15.12.2010, 05:22


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0620 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.