C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
MDI :Новое окно в новый поток
Giny
Отправлено: 14.03.2006, 14:05


Ученик-кочегар

Группа: Участник
Сообщений: 23



У меня MDI приложение — терминал для каждого порта свое окно. Как создавать новое окно в новом потоке, чтобы там обрабатывались все его обработчики?
Doga
Отправлено: 14.03.2006, 14:34


Мастер участка

Группа: Участник
Сообщений: 575



Може лучше наоборот, новый поток в новом окне? smile.gif
olegenty
Отправлено: 14.03.2006, 14:44


Ветеран

Группа: Модератор
Сообщений: 2412



VCL не позволяет создавать окна в потоках.
Giny
Отправлено: 14.03.2006, 14:54


Ученик-кочегар

Группа: Участник
Сообщений: 23



Спасибо за ответы, я подозревал об этом, мои опасения подтвердились.
Konstantine
Отправлено: 14.03.2006, 17:51


Мастер участка

Группа: Модератор
Сообщений: 545



окна-то окнами — они должны быть лишь в главном потоке...
но вот в каждом дочернем окне — можно держать сцылку на работающий поток... и управлять/отображать его свойства
Giny
Отправлено: 14.03.2006, 19:54


Ученик-кочегар

Группа: Участник
Сообщений: 23



Думаю буду делать так: Для каждого дочернего окна создается поток

void __fastcall СhildClassName::Execute()
{
do
if (<приняты_данные>) Synchronize(<отобразить_данные>);
if (<передаются_данные>) Synchronize(<передать_данные>);
...

while (!Terminated || .. );
Synchronize(..);
}

В главном потоке только устанавливать фажки:
<приняты_данные>
<передаются_данные>

а основную обработку проводить в:
<отобразить_данные>
<передать_данные>
flint
  Отправлено: 16.03.2006, 08:41


Дежурный стрелочник

Группа: Участник
Сообщений: 58



Может, кто-нибудь подскажет...
Я создаю новый поток в приложении.
А при нажатии alt-ctrl-del, и меняя приоритет процесса с именем моего прилжения меняется и приоритет потока, который я создаю.
Как это объяснить?
Получается что-ли поток моего приложения и поток который я создаю должны иметь один приоритет? Или поток, который я создаю — часть приложения, и выделить его в отдельный процесс нельзя?
Помогите разобраться...

Вернуться в Вопросы программирования в C++Builder