如何让 NSView 在循环时立即显示?
How to make NSView display immediately while in loop?
我有一个循环迭代 100 万次对数据集进行一些计算。
为了显示这些计算的进度,我想定期在 NSView 中显示数据集,例如,每 10,000 次循环迭代,然后暂停 1 秒,以便我可以看到数据集以其当前状态显示。
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],但到目前为止,我只看到循环结束后视图更新。
如果thread/UI被屏蔽了也没关系,只是为了可视化我自己的计算。
睡觉
usleep(useconds_t)
示例一秒
usleep(1000000);
我有一个循环迭代 100 万次对数据集进行一些计算。
为了显示这些计算的进度,我想定期在 NSView 中显示数据集,例如,每 10,000 次循环迭代,然后暂停 1 秒,以便我可以看到数据集以其当前状态显示。
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],但到目前为止,我只看到循环结束后视图更新。
如果thread/UI被屏蔽了也没关系,只是为了可视化我自己的计算。
睡觉
usleep(useconds_t)
示例一秒
usleep(1000000);