Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Странная ошибка E2027


Автор: SIRIUStar 7.12.2007, 14:23
Здравствуйте! проблема такая: делаю клиент чата, сообщения принимаю в отдельном потоке, чтоб пользователь увидел сообщение я в этом потоке делаю видимой форму PrivateForm используя метод Show. При этом она появляется пустая и приложения конкретно зависает! Никаких экскепшонов не вылетает. Только когда я в дебаге смотрю адрес функции Show там написанно E2027.. что делать?? 

Автор: xvr 7.12.2007, 14:32
Цитата(SIRIUStar @ 7.12.2007,  14:23)
Здравствуйте! проблема такая: делаю клиент чата, сообщения принимаю в отдельном потоке, чтоб пользователь увидел сообщение я в этом потоке делаю видимой форму PrivateForm используя метод Show. При этом она появляется пустая и приложения конкретно зависает! Никаких экскепшонов не вылетает. Только когда я в дебаге смотрю адрес функции Show там написанно E2027.. что делать??

VCL'ные методы можно вызывать ТОЛЬКО в основном main потоке программы. Используй TThread::Synchronize

Автор: Lazin 7.12.2007, 14:33
А ты пользуешься Synchronize для вызова Show?

Автор: SIRIUStar 7.12.2007, 14:35
Synchronize? А можно поподробнее?? Я просто еще с таким не сталкивался)

Автор: Lazin 7.12.2007, 14:56
В классе TThread есть такой метод, он получает на вход ф-ю и вызывает ее, приостанавливая основной (gui) поток.

Автор: SIRIUStar 7.12.2007, 16:10
Всем спасибо! Проблема решена! Сделал поток через TThread и добавил синхронизацию! все работает)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)