2016-09-02 9 views
0

У меня есть цикл, который повторяет 1 миллион раз, выполняя некоторые вычисления на наборе данных.Как сделать дисплей NSView сразу во время цикла?

Чтобы показать ход выполнения этих вычислений, я хотел бы периодически отображать набор данных в NSView, скажем, каждые 10 000 итераций цикла, а затем пауза в течение 1 секунды, чтобы я мог видеть, как DataSet отображается в текущем состоянии.

for(j=0; j<1000000; j++) 
{ 
    ...do some calculations on dataSet 

    if(j%10000 == 0){ 
     [myView display] //[myView drawRect:] will show current state of dataSet 
    } 

    ... pause for a second to see the dataSet in myView 
} 

Так что в этом случае я хочу 10 обновлений дисплея, примерно 1 раз в секунду.

Я пробовал всевозможные способы: от NSTimers до [NSThread sleepForTimeInterval], но до сих пор я вижу просмотр только после завершения цикла.

Не имеет значения, заблокирован ли поток/пользовательский интерфейс, так как это только для визуализации моих собственных вычислений.

ответ

1

Для сна

usleep(useconds_t) 

пример для одного второго

usleep(1000000); 
+0

Спасибо, работал, как предполагалось. –