crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> как лучше организовать поток
mezmay
  опции профиля:
сообщение 23.3.2010, 10:53
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


Сделал свой класс для отображения графиков. В конструкторе происходит открытие файла, и если файл большой, то программа висит целый час, и только потом появляется график, но вылетает ошибка RunTime error. Получается что программа во время открытия файла слишком сильно загружена и не обработывает сообщения наверное... Возникла мысль сделать открытие в другом потоке. Но как дождаться его завершения прямо в конструкторе? (т.е. без использования слота)? или это невозможно? Qt-шная функция wait() и win32 функция WaitForSingleObject() точно так же повесят программу, как и без потока. Что можно сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.3.2010, 12:41
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(mezmay @ 23.3.2010, 13:53) *
Но как дождаться его завершения прямо в конструкторе?
а зачем тогда поток отдельный, если ты будешь сидеть в конструкторе (события-то по прежнему не обрабатываются)?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 23.3.2010, 23:44
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

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




Репутация:   5  


ну вообще это можно делать без слота, но и вне конструктора. А вот зачем делать реально в конструкторе - даже с потоком, т.к. суть одна - не ясно :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 24.3.2010, 7:53
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


Понял свою тупость. в конструкторе ждать и правда нет смысла. а вместо слота можно просто вызов обычной функции сделать из потока.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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