![]() |
|
|
![]()
|
|
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
сразу прямо в main-е запускаю поток (так надо):
а как мне обеспечить возможность доступа к членам (per1, mas[]) класса my_thr из других, например из mainwindow.cpp, модулей программы? подскажите пож-та ны вышеуказанном примере... |
|||
|
||||
| null56 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
если я правильно понял, вопрос про организацию кода программы? если да, тогда, как вариант (!!!), можно хранить ссылку(или указатель) на объект класса my_thr внутри класса mainwindow Шаги: 1) подключи файл my_thr.h в заголовке mainwindow.h
2) создай ссылку или указатель, в переменных - членах класса MainWindow, на объект класса my_thr, инициализируй ее в конструкторе
Другие варианты: - сделать объект класса my_thread статическим (не есть хорошо), как вариант синглтон, и обращаться к нему через статические методы. в этом случае не придется изменять конструктор MainWindow и lдобавлять туда переменные, но возникает сложность следить за завершением потока и синхронизацией данных, учитывая, что у тебя там не все атомарные типы (short []) - делать общие переменные внутри класса my_thr, то есть сам класс может быть создан внутри стека, но работает он с какими - то глобальными данными... в этом случае возникает сложность синхронизации этих данных, ну это, что пришло на ум.... я бы наверное сделал через синглон, тогда поток был бы общим для всех классов приложения, запуск и завершение потока я бы вынес в конструктор и деструктор основного окна приложения соотвественно как - то так... ЭТО если я правильно понял, то чего ты спрашиваешь Это сообщение отредактировал(а) null56 - 13.11.2010, 01:59 |
||||
|
|||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Если нужно обработать данные в потоке и вернуть результат в класс виджета, то лучше посмотреть в сторону QtConcurrent, в класс MainWindow добавить QFutureWatcher и результаты брать у него, когда придет сигнал о завершении операции потока.
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |