Добрый день, использую коллбак некого объекта MyLongCompute, т.е.
есть у меня форма MyForm в котором по умолчанию запускается главный поток... по нажатию кнопки, передаются параметры для обработки в долгий процесс стороннего объекта MyLongCompute, по завершению долгой обработки есть возможность получить коллбак с уведомлением завершения процесса расчета и параметры для вывода. Вывод информации на форму занимается главный поток объекта MyForm. Как сделать так, чтобы полученные параметры от КаллБэка были доступны главному потоку и главный поток мог отобразить их значения на форме?
Здравствуйте, emergen, Вы писали:
E>Добрый день, использую коллбак некого объекта MyLongCompute, т.е. E>есть у меня форма MyForm в котором по умолчанию запускается главный поток... по нажатию кнопки, передаются параметры для обработки в долгий процесс стороннего объекта MyLongCompute, по завершению долгой обработки есть возможность получить коллбак с уведомлением завершения процесса расчета и параметры для вывода. Вывод информации на форму занимается главный поток объекта MyForm. Как сделать так, чтобы полученные параметры от КаллБэка были доступны главному потоку и главный поток мог отобразить их значения на форме?
Сильно зависит от ОС и оконного фреймворка.
Можно тупо писать в рабочем потоке данные в глобальную переменную и затем отправлять оконному потоку сообщение "посмотри, когда сможешь". Или упаковывать данные в структуру на куче или в строку, и отправлять сообщение с прицепленными данными.
Можно отправлять оконному потоку синхронное сообщение с данными "посмотри немедленно, как сможешь, а я подожду".
Можно в рабочем потоке писать данные в глобальную переменную, а оконный поток пусть сам с нужной ему периодичностью проверяет, есть ли там что-то интересное.
Ну и т.д.