![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
call_me_Frank |
![]() ![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 73 Регистрация: 20.10.2010 Пользователь №: 2129 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Привет, форумчане!
![]() тема вот такая: в программе имеется поток, который должен запускать сетевой протокол, обмениваться по нему данными и писать что-то в БД. вопрос такой, как и где лучше разместить объекты работы с протоколом и БД? поместить их в run() и каждый раз при необходимости создавать их и подключаться, или, может быть, разместить их внутри класса, запускающего поток, а, скажем, в конструкторе создавать их и подключаться один раз? а в run() путем транзакций передавать им данные для работы? |
|
|
call_me_Frank |
![]()
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 73 Регистрация: 20.10.2010 Пользователь №: 2129 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
вопрос, похоже, не ахти какой актуальный. но, просто хотелось бы сделать проект наиболее грамотно, и может все-таки кто-нибудь подскажет?
|
|
|
mezmay |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Создаешь класс например CMyWork, унаследованный от QObject, содержащий все необходимые для работы протокола и записи в БД функции.
Экземпляр этого класса создаешь в run(), затем подключаешь необходиме для связи с основным потоком сигналы и слоты и запускаешь exec(): Пример:
таким образом все методы класса CMyWork будут работать в отдельном потоке. Сообщение отредактировал mezmay - 14.12.2011, 20:12 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 12.5.2025, 20:19 |