многопоточность QThread |
Здравствуйте, гость ( Вход | Регистрация )
многопоточность QThread |
Гость_wiz29_* |
28.6.2010, 15:26
Сообщение
#51
|
Гости |
|
|
|
wolf.diesel |
13.7.2010, 9:29
Сообщение
#52
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 10.7.2010 Пользователь №: 1874 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вообще, чтобы небыло подобных вопросов о межпроцессном взаимодействии, уясни одну вещь: каждый поток выполняется в своем пространстве и со своей памятью.
Чтобы изменить ЛЮБЫЕ данные ЛЮБОГО потока твоей аппликухи, ты должен использовать ПОТОКОБЕЗОПАСНЫЕ методы. Это касается не только кути фреймворка. Это стандарт. Так вот, для тебя было бы проще описать в классе главного окна слот, который бы принимал данные от потока, а в потоке описать сигнал(окончания действия, к примеру), который будет вызываться только по окончании работы и внутренней подготовки данных. Далее, при создании потока ты будешь делать connect(thread, SIGNAL(метод_который_описан_как_сигнал(record *)), widget, SLOT(слот_описанный_тобой_для_компонента_или _формы(recod *)); обрати внимание, что слот и сигнал имеют в параметре одинаковый тип данных(!). А далее, в слоте уже делай с данными все, что пожелаешь. Можешь даже уничтожить, не читая Это называется потокобезопасное программирование, без применения всяких вытесняющих технологий ) Только помни, что данные, которые ты передаешь между потоками должны быть созданы в куче, а не в стеке. То есть
Ну и позаботиться об удалении, после использования неплохо бы:
Надеюсь, идея понятна ) |
|
|
Алексей1153 |
13.7.2010, 18:26
Сообщение
#53
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
wolf.diesel |
14.7.2010, 17:56
Сообщение
#54
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 10.7.2010 Пользователь №: 1874 Спасибо сказали: 0 раз(а) Репутация: 0 |
Пардон, неправильно выразился
QtConcurrent - подобных библиотек. Я согласен, что метод мной приведенный работает далеко не всегда и, все ж таки, придется юзать мьютексы и прочие прелести тредов, но то, что я написал, хотя бы, даст пинка мысли ) Начало. Ато человек вконец запутался, как я посмотрел ) |
|
|
Текстовая версия | Сейчас: 28.9.2024, 17:19 |