вопрос про многопоточность |
Здравствуйте, гость ( Вход | Регистрация )
вопрос про многопоточность |
qt_user |
28.9.2012, 18:46
Сообщение
#1
|
Студент Группа: Участник Сообщений: 52 Регистрация: 11.9.2012 Пользователь №: 3518 Спасибо сказали: 0 раз(а) Репутация: 0 |
В main GUI приложения(mainWIndow) создаю поток и запускаю его
Проблема в том что если в теле 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`а, который заблочил основной поток. |
|
|
Текстовая версия | Сейчас: 28.11.2024, 20:22 |