Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   Еще раз "UI только в главном потоке" (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/eshe-raz-ui-tol-ko-v-glavnom-potoke-358255/)

Guest 30.09.2011 21:02

Еще раз "UI только в главном потоке"
 
Добрый деньСтандартная ситуация - в ходе выполнения параллельных вычислений необходимо обновлять индикатор. Организовывать посылку сигналов или др. взаимодействие между нитками - в данном случае неприемлемо медленно. Сделал такКодC++ (Qt)#pragma omp master UpdateIndicator(); // выполняется только главной ниткойЭто работает, но вылезает др. проблема: нитки в разное время заканчивают вычисления. Поэтому нередко получается что главная нитка уже отстрелялась а остальные еще пашут - индикатор "замораживается" в конце вычислений.Есть др. возможностьКодC++ (Qt)#pragma omp single nowait UpdateIndicator(); // выполняется только одной (любой) ниткойНо тут непонятки с "UI только в главном потоке" - что же имеется ввиду. Вопросы:1) Могу ли я в Qt вызвать рисование из др нитки? Что QWidget UI должны быть созданы только в главной нитке, что нельзя вызывать рисование 2-мя или более нитками - это ясно. Но могу ли я просто "перерисоваться" из любой нитки?2) Могу ли я делать это ("1") в нативном UI (не Qt)?Спасибо


Часовой пояс GMT, время: 18:12.


© www.otvetnemail.ru - Форум вопросов и ответов.