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

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 3 (https://www.otvetnemail.ru/novyj-arhiv-3-813/)
-   -   Thread и ProgressBar в QT (https://www.otvetnemail.ru/novyj-arhiv-3-813/thread-i-progressbar-v-qt-258379/)

Guest 28.09.2011 17:33

Thread и ProgressBar в QT
 
Для передачи данных по tcp\ip я использую отдельный поток. Чтобы отображать состояние использую отдельный VBox с ProgressBar - ом (Или ProgressDialog). В процедуре run() пишу:...while((ReadDataLength =Fl_OpenFile ->readBlock(cThreadBuffer,LENGTH_PACKET )) >0){SumLength +=ReadDataLength;Sct_ConnectSocket ->writeBlock(cThreadBuffer,ReadDataLength );...PBr_SendFileProgress ->setProgress(SumLength);}VBx_SendFilePro gress ->hide();...Так вот эта программа приодически зависает, диалог с ProgressBar - ом не закрывается и вообще работает медленней чем хочется. И конечно если убрать строку "PBr_SendFileProgress ->setProgress(SumLength);" все работает зашибись как.Вопрос: Почему?И еще при зависании в консоли выводится сообщение: "Xlib: unexpected async reply (sequence 0x2bbd)". Т.е. я так понимаю: асинхронный доступ - это плохо. А как из вторичного потока взаимодействовать лучше всего с GUI?


Часовой пояс GMT, время: 13:44.


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