суббота, 25 августа 2012 г.

Рекомендуемый путь использования QThread в Qt 4.4 и выше

Qt предоставляет класс QThread для создания многопоточных приложений. К сожалению, существует некоторая путаница относительно того, как нужно использовать QThread. Данный пост рассказывает о основе, заложенной в класс QThread, а также описывает то, как Вы должны использовать Q-потоки в Ваших приложениях.

Не создавайте подклассов QThread!
Большая часть путаницы происходит из-за того, что QThread используется как абстракатный класс. Такуим образом, единсветнный путь использования Qthread - это создание его подкласса и переопределение метода run(). И это действительно было так, до версии Qt 4.4, начиная с которой метод QThread::run() получил реализацию по умолчанию, следовательно необходимость в создание потомков класса QThread отпала. Главной причиной этому послужил тот факт, что создание потомков класса QThread может препятствовать использованию слотов подклассом.

Единственная причина, по которой, Вам по-прежнему может понадобиться создавать потомки класса QThread - это создание своего собственного цикла приложения(application run-loop).

Используйте moveToThread() и "рабочий" класс, подкласс QObject.
Далее описано, как Вы должны реализовать многопоточную операцию используя класс QThread.
Для начала, создайте "рабочий" класс, который унаследован от класса QObject.
Этот класс должен определять следующие сигналы и слоты:
  • Слот, в котором происходит вся основная работа.
  • Сигнал, который информирует вызывающий код о завершении работы.
  • * Опционально, сигнал, который информирует вызывающий код в случае возникновения ошибок.
"Рабочий" класс может выглядеть так:
class Worker : public QObject {
 Q_OBJECT
 public:
  Worker();
  virtual ~Worker();
 public slots:
     void process();

 signals:
     void finished();
     void error(QString err);
};
Далее, используйте QThread в связке с Вашим "рабочим" классом, для выполнения многопоточной работы:
// Создание потока
QThread* thread = new QThread;
Worker* worker = new Worker();

// Передаем права владения "рабочим" классом, классу QThread.
worker->moveToThread(thread);

// Связываем сигнал об ошибки со слотом обработки ошибок(не показан).
connect(worker, SIGNAL(error(QString)), this, SLOT(errorHandler(QString)));

// Соединяем сигнал started потока, со слотом process "рабочего" класса, т.е. начинается выполнение нужной работы.
connect(thread, SIGNAL(started()), worker, SLOT(process()));

// По завершению выходим из потока, и удаляем рабочий класс
connect(worker, SIGNAL(finished()), thread, SLOT(quit()));
connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater()));

// Удаляем поток, после выполнения операции
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));

thread->start();

Заметка является переводом с форума поддержки разработчиков Blackberry.

3 комментария:

  1. VarangaOfficial - варанга это - только достоверные и проверенные факты. Воспользовавшись нашим сайтом, вы получите возможность узнать подробную информацию об этом лекарственном средстве. Увидеть данные о проведенных клинических исследований, прочесть отзывы реальных пользователей и врачей. Изучить инструкцию по использованию, прочитать особенности и методы работы комплекса, понять, в чем заключаются особенности работы крема Варанга, где можно приобрести оригинальный препарат и, как не нарваться на фальсифицированный продукт. Мы скурпулезно проверяем размещаемые на сайте данные. Предоставляем пользователям нашего ресурса сведения, которые берутся только из авторитетных источников. Если вы нашли признаки развития грибка или же долго и безрезультатно пытаетесь избавиться от этого досадного недуга, на нашем сайте вы отыщете быстрый и простой способ устранения проблемы. Приобщайтесь и живите здоровой полноценной жизнью. Мы собрали ответы на все вопросы на одном информационном ресурсе.

    ОтветитьУдалить
  2. Порно чат с отдельными лицами и молодыми голыми девушками, потому что они транслируют онлайн из своих собственных квартир, смотрите бесплатное порно секс-представление на веб-камеру. Зарубежный секс видео чат с девушками народов планеты, общение без ограничений, игрушки для посетителей абсолютно конфиденциальны и абсолютно бесплатны. Визуальный постельный забавный видеочат бесплатно, при отсутствии регистрации, все желающие смогут познакомиться с девушками для постели в скайпе, заходите на наш ресурс и общайтесь сейчас бесплатно. Бесплатные секс-файлы чатов без регресса, самый распространенный эротический чат во всем мире, не упустите свой шанс, добавьте наш сайт в избранное в этом случае у посетителей есть реальный шанс пообщаться бесплатно в любое время. Бонго чат кошки удаленно секс видео чат бесплатный, используя наш сайт у вас есть возможность познакомиться с эротическими девушками для ритуального секса. Молодые девушки голые смотрят бесплатный видеочат по веб-камере в режиме реального времени, дедики для клиентов будут мастурбировать свои сладкие киски. Получите максимум удовольствия от жизни, зайдите в эротический видеочат и откройте знакомство с девушками, которые принципиально хотят найти парня для секса. Секс чат в интернете бесплатно и свободно поможет вам воплотить в кино любые ваши интимные фантазии. Просто нажмите прямо сейчас и общайтесь с цыпочками по скайпу, занимайтесь виртуальным сексом, обменивайтесь фотографиями и видеофайлами. Все самое увлекательное специально для наших зрителей, девушки будут исполнять эротическое представление онлайн, просматривать частные записи, онлайн-трансляции молодых девушек-моделей, которым не менее восемнадцати лет. Эротический онлайн видеочат - познакомьтесь с бесчисленным количеством людей, которые живут поблизости или в других штатах. Бесплатный секс по скайпу с молодыми и обнаженными дамами на веб-сайте веб-камеры для плотских утех и сексуальной близости-визуальный секс по скайпу с моделями бесплатно. Бесплатный эротический видеочат онлайн, покоряющий девушек по веб-камере, загляните в продвинутый секс-видеочат бесплатно и займитесь сексом с красотками по скайпу. Эротический видеочат бесплатно, при отсутствии регистрации, вы можете общаться с куклами в рамках вирта, смотреть секс-чат в интернете, как барышни мастурбируют и танцуют стриптиз перед камерой. Секс по скайпу с девушками, заходите в наш видеочат с голыми барышнями 18 бесплатно, на нашем ресурсе вы получите возможность заняться сексом по скайпу без регресса. Секс чат с цыпочками и женами, на этом портале девушки со всей планеты делают закладки в наш бесплатный эротический видеочат, чтобы вы остались довольны. В случае, если вы дорожили этим материалом, и мы спокойно хотели бы получить дополнительную информацию о порно чат рулетка с девушками, Пожалуйста, посетите нашу собственную страницу.

    ОтветитьУдалить
  3. Почему последние займ онлайн Мфо так востребованы среди украинцев? Ответ максимально прост - в указанной финансовой компании гораздо удобнее выписать микрокредит на карту. Кредитная база еще не сформирована, и кредитору нужны потребители, чтобы привлечь новых потенциальных покупателей в рамках персонального обслуживания. Мфо посещают любые концессии, предлагающие беспроцентные кредиты, одобрение с различными кредитными историями и многие, многие новые варианты. Нам также придется соотнести с нашими желаниями тот факт, что у нынешних мфо нет онлайн-кредитов для всех, кто жаждет, хотя они предоставляют условно лучшие кредитные предложения на рынке кредитных услуг страны. Для получения онлайн-микрозайма будущий заемщик должен соответствовать следующим требованиям: - Гражданство украины; - Обязательное предъявление паспорта или удостоверения личности, инн; - Возраст 18-65 лет; - Высокий доход (возможен без официального трудоустройства) - Устройство. Это ключевой перечень общепринятых требований, которые касаются любого украинца, который рассчитывает оформить интернет-мини-кредит в микрофинансовой компании. Очень современные микрокредиты доступны в любое время без задержек, многие из компаний, перечисленных в альбоме wikicredit, работают 24 часа в сутки без перерыва на обед и ежедневно. Поэтому вы можете подать заявку на онлайн-кредит на кредитную карту в удобное и приемлемое для всех время. 1. В альбоме wikicredit выберите продюсеров с самым высоким рейтингом. 2. Обратите внимание на комментарии и условия мфо. 3. Загляните на официальную страницу компании и заполните короткую анкету. 4. Подтвердите свою карту на ресурсе кредитора. 5. Дождитесь обработки заявки, если решение будет положительным, вы получите заработанные средства. Совет! Когда вам отказали в кредите, мы не откажемся, смело звоните в следующую новую мфо из списка, представленного выше. Согласно внутренней статистике портала, каждый 3-й запрос, отправленный в различные кредитные фирмы от 1-го клиента, утверждается в 93 % случаев. Существует большое количество различных способов расчета микрозайма. Самые популярные и удобные способы расчета и пролонгации кредита: - В личном кабинете мфо (будет доступен после регистрации); - Через приват24 или терминалы самообслуживания; - Наличными в аэропорту любого украинского банка. Последствия невыплаты микрозайма При оформлении нового быстрого кредита обязательно рассчитайте максимальную финансовую нагрузку на любые средства. Решите лично, можете ли вы оплатить тело кредита и оплату за пользование кредитом наличными. Для расчета воспользуйтесь кредитным калькулятором, расположенным на сайте мфк, также изучите паспорт кредита и договор.

    ОтветитьУдалить