Russian Qt Forum

Qt => Общие вопросы => Тема начата: Vilgeforce от Февраль 07, 2005, 14:44



Название: Threading
Отправлено: Vilgeforce от Февраль 07, 2005, 14:44
Люди! Есть такой вопрос: можно ли в проге, Qt использующей, вызывать CreateThread и прочие функции Win API для работы с нитями? Глюков при вызове этих функций не будет?


Название: Threading
Отправлено: Admin от Февраль 07, 2005, 14:53
можно
глюков быть не должно

только зачем это надо
есть же QThread


Название: Threading
Отправлено: Vilgeforce от Февраль 07, 2005, 16:53
Ну, не использую QThread, потому как у меня класс есть, который должен работать и без Qt.

Ситуация у меня странная: есь класс для работы с COM-портом. В нем создается отдельная нитка для реализации CallBack функции, которая вызывается при получении портом данных. Вот с поюзанием такой штуки пишу, короче, терминалку. Глюк в том, что при выводе принятых символов в QTextEdit, прога может с исключением вылететь. Если символы в QTextEdit не выводить - все работает. И все работает если нитей своих не создавать.

Что глючит - не ясно. Я вот и думаю, что как-то не так Qt может с нитями работать.


Название: Threading
Отправлено: Sergeich от Февраль 07, 2005, 19:32
Если ты пытаешься использовать методы QTextEdit не из главной( событийной ) нитки все может грохнуться. Если ты хочешь добавить какой-нить текст в QTextEdit из не главной нити тебе придется определить свое событие, передать его в главную нить через QApplication::postEvent ( QObject * receiver, QEvent * event ) и дописать к QTextEdit'у обработку этого события.
  Cм. Qt 3 Programming Guide, 17.2


Название: Ясно!
Отправлено: Vilgeforce от Февраль 08, 2005, 10:34
Ну, тогда теперь все ясно :-) Странно, что в Qt 3 Programming Guide в начальных главах про это ни слова.

А я, блин, неделю на поиск глюков потратил и еще 4 дня - на переписывание класса для порта :-) Теперь, надеюсь, разберусь.


Название: Threading
Отправлено: Racheengel от Февраль 09, 2005, 16:22
сам пишу проги под СОМ-порт. Раньше юзал событийный класс, но теперь решил от него отказаться. Слишком много геморроя. Последовательные алгоритмы ИМХО понадежнее.


Название: Re: Ясно!
Отправлено: Racheengel от Февраль 11, 2005, 12:35
Цитата: "Vilgeforce"
Ну, тогда теперь все ясно :-) Странно, что в Qt 3 Programming Guide в начальных главах про это ни слова.

А я, блин, неделю на поиск глюков потратил и еще 4 дня - на переписывание класса для порта :-) Теперь, надеюсь, разберусь.


А ты бы не мног мне его прислать, этот свой класс?
на racheengel@ukrtop.com, плиз.


Название: Threading
Отправлено: joktar от Февраль 14, 2005, 02:42
А чем не понравился для работы с com-портом  QExtSerialPort?
(берется например на Qt Inside(http://hardclub.donntu.edu.ua/projects/qt/components/qextsp.htm))


Название: Threading
Отправлено: Racheengel от Февраль 14, 2005, 11:21
:) дык на Qt Inside я-то его и выложил :)
он хорош, работает нормально. Не в этом дело. Интересуют способы его ПРАВИЛЬНОГО использования.