Re: нужна тут многопоточность?
От: Igor Soukhov  
Дата: 30.03.02 19:32
Оценка:
Здравствуйте Dancer, Вы писали:

D>Ситуация такая: есть двумерный массив точек, значения элементов массива изменяются в цикле функцией Evaluate. Я хочу выводить этот массив на экран после КАЖДОЙ итерации цикла. Если я правильно понимаю, то просто вариант

D>for(int i = 0;i < m_numOfIterations;i++)
D>{
D> Evaluate();
D> InvalidateRect(CRect(10, 10, 650, 650), FALSE);
D>}
D>не работает по причине буферизации вывода => картинка не успевает отрисоваться до начала следующей итерации цикла.
D>Я попробовал делать в цикле такую вещь:
D>for(...)
D>{
D>Evaluate();
D>InvalidateRect(CRect(10, 10, 650, 650), FALSE);
D>::WaitForSingleObject(g_eventFinished, INFINITE);
D>}
D>а из OnPaint класса СDialog активировать g_eventFinished (с автосбросом) после того, как все отрисуется, но почему-то не выходит.
D>Каково стандартное разрешение этой ситуации? Обязательно ли заводить отдельный поток (перенести в него вычисления или рисовать в нем)?
проводи вычисления во втором потоке и инициируй из него отрисовку.
* thriving in a production environment *
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.