iPHone:我们使用 MonoTouch,但 Obj-C 的答案是可以的。

我的单例域对象需要一段时间来获取所有数据,因此它在一个线程中在内部运行部分提取。

我需要通知 UI 域已完成。目前我这样做。有没有更好的办法?在 WinForms 中,我会调用 Application.DoEvents() 而不是 Thread Sleep。

PlanDomain domain = PlanDomain.Instance ();
while (domain.IsLoadingData)
{
    Thread.Sleep (100);  //this is the main UI thread
}

TableView.Hidden = false;
TableView.Source = new TableSource (this);
TableView.ReloadData ();

最佳答案

一般来说,你想避免 DoEvents。 Objective-c 中的 iPhone 等效项如下所示:

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]];

关于iPhone 相当于 Application.DoEvents();,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2840597/

10-08 21:00