Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Многопоточная безопасность в Qt, Многопоточная безопасность в Qt 
:(
    Опции темы
andrew_121
Дата 16.3.2008, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Всем Доброго времени суток.
Прежде чем приступить к работе над проектом, хотелось-бы узнать Ваше мнение.
Есть задача следующего рода:
1) От некого устройства, получаю данные синхронно(если устройство готово), если не готово, ждем...
2) Полученые данные, обрабатываються, и результат помещается в float* dx, *dy, *dz;
3) После чего, данные должны быть отображены на форме основного окна в, (возможно) QBrush* brush;

Обьясняю мое видение решения:
Из-за синхр. получения данных, создать отдельный поток(ну чтоб ГУИ не тормозился)
И встает вопрос о синхронизации, данные (float* dx, *dy, *dz;) нужно отобразить в QBrush* brush; основного потока.
1) Где лучше разместить (float* dx, *dy, *dz;) в потоке обработки устройства или в основном ?
2) Какие могут быть проблемы ?
3) Как оных избежать ?
4) Что Вы посоветуете ?

Заранее благодарен...

Код

class DataGet:public QThread { // Устройство...
public:
    DataGet(QObject* o = 0):QThread(o) {}
private:
    GettingDevice* dev; // Апаратура...
    float* dx, *dy, *dz; // обработаные данные...
};

class Form:public QDialog { // Основная форма...
public:
    Form(QWidget* o = 0):QDialog(o) {}
private:
    QBrush* brush; // Компонент отображения...
    DataGet* device; // Поток устройства...
};



Это сообщение отредактировал(а) andrew_121 - 16.3.2008, 12:45


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
JackYF
Дата 16.3.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


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

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



Цитата(andrew_121 @  16.3.2008,  01:43 Найти цитируемый пост)
Какие могут быть проблемы ?

ну дык, синхронизации и есть.

Бери QMutex и обрамляй им все чтения и записи в структуру (dx,dy,dz). И всё.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




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


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

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