Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 28.09.2011, 17:33
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Для передачи данных по 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?
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Thread Safe / Non Thread Safe Guest Продолжение старого архива 0 17.10.2011 04:34
ProgressBar при загрузке файлов Guest Продолжение старого архива 0 17.10.2011 01:23
вопрос про class.progressbar.php Guest Продолжение старого архива 0 16.10.2011 16:32
Thread termination Guest Продолжение старого архива 0 30.09.2011 21:06
QAxObject и Thread Guest Продолжение старого архива 0 30.09.2011 13:27



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