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