crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> вопрос про многопоточность
qt_user
  опции профиля:
сообщение 28.9.2012, 18:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 11.9.2012
Пользователь №: 3518

Спасибо сказали: 0 раз(а)




Репутация:   0  


В main GUI приложения(mainWIndow) создаю поток и запускаю его

...
    AtThread t_receiver;
    t_receiver.run();
    t_receiver.wait();
...


Проблема в том что если в теле run написать бесконечный цикл, то вешается GUI поток.
Почему-то я думал что они параллельно выполняться будут. Сделал sleep(0) в теле run, но на GUI поток не переключился...
Чет я не понимаю... Как так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 28.9.2012, 19:18
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


AtThread - что за класс ? В справке нет )

а по справке нужно вызывать QThread::start

а ты вызвал run как обычный метод. Бесконечный.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 28.9.2012, 19:59
Сообщение #3


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


если стоит wait - поток будет ждать окончания другого потока, по определению wait.
а уж где там гуй - дело десятое. это смотря куда этот wait воткнуть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 28.9.2012, 20:08
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Вот хорошие объяснение:
http://qt-project.org/wiki/QThreads_general_usage
http://qt-project.org/wiki/ThreadsEventsQObjects

Сообщение отредактировал RazrFalcon - 28.9.2012, 20:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
qt_user
  опции профиля:
сообщение 29.9.2012, 10:30
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 11.9.2012
Пользователь №: 3518

Спасибо сказали: 0 раз(а)




Репутация:   0  


всем спасибо. Опять моя невнимательность + недопонимание wait.

Получается wait сыграл роль своего рода semaphore_obtain`а, который заблочил основной поток.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 3:19