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