Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   Обмен данными между потоками (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/obmen-dannymi-mezhdu-potokami-358351/)

Guest 30.09.2011 21:04

Обмен данными между потоками
 
У меня есть несколько потоков.Хочу реализовать передачу данных от одного потока к другому хочу реализовать так:Код:KProtocolThread: public QThread{public: void sendCommand( int code, const QByteArray &data );protected slots: void sendCommandImplementation( int code, const QByteArray &data );};void KProtocolThread::sendCommand( int code, const QByteArray &data ){ QMetaObject::invokeMethod( this, "sendCommandImplementation", Qt::QueuedConnection, Q_ARG( int, code ), Q_ARG( QByteArray, data ) );}Для использования, в основном потоке вызываю, thread->sendCommand (где thread указатель на экземпляр класса потока), что помещает вызов слота sendCommandImplementation в очередь событий потока.Вопросы:1. Адекватный ли это способ.2. Какие есть подводные камни?3. Очень важно. События в очереди обрабатываются в том же порядке в котором поступили или могут в произвольном?


Часовой пояс GMT, время: 16:41.


© www.otvetnemail.ru - Форум вопросов и ответов.