crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
crazymonkey
  опции профиля:
сообщение 10.12.2012, 20:10
Сообщение #1


Студент
*

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

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




Репутация:   0  


Доброго времени суток.
У меня следующая проблема: Есть список объектов, для каждого объекта я должен по таймерам запускать пару функций.
Время выполнения функций достаточно большое, поэтому я бы хотел вынести эти функции в отдельные потоки, отсюда вопрос:
как бы это архитектурно организовать? (естественно классами qt)

Более предметно:
Раскрывающийся текст

Есть список серверов, для каждого сервера хранится время, через которое я должен его пинговать


:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 10.12.2012, 21:48
Сообщение #2


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

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

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




Репутация:   1  


Если коротко:
// Наследуешься от QRunnable:
class CServerPinger : public QRunnable
{
public:
    void setServerParameters(/*параметры*/)
    {
        /*задание параметров*/
    }

    void run()
    {
        pingTargetServer(/*параметры*/); // Твоя функция пинга
    }
}

// Создаешь нужное количество объектов для пинга
CServerPinger *hello = new CServerPinger;
hello->setAutoDelete(false); // Чтобы объект не удалялся после каждого старта
hello->setServerParameters(...); // Задаем параметры сервера

// И по нужному таймеру:
QThreadPool::globalInstance()->start(hello); // Вызовется тело run()

Ну в общем посмотри документацию на QThreadPool

Сообщение отредактировал mezmay - 10.12.2012, 22:10
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 22.5.2025, 12:50