我正在编写一个 J2ME 应用程序。其中之一是定期轮询目录的内容,如果有任何新内容,则将它们绘制在屏幕上。我通过让 UI 表单启动一个带有指向自身的指针的轮询线程来完成此操作,并且当轮询线程找到某些内容时,它会回调表单并调用同步方法来更新它的显示。这似乎工作正常。
我的问题是这个。在 C#/.NET 中,我知道让非 UI 线程更新 UI 并不好,处理此问题的正确方法是将其委托给 UI 线程。
例如以下:
public void DoSomeUIThing()
{
if (this.uiComponent.InvokeRequired)
{
this.uiComponent.Invoke(someDelegateThatCallsBackToThis);
}
else
{
this.uiComponent.Text = "This is the update I want to happen";
}
}
是否有 J2ME 等价物来管理这个过程?Java怎么样?还是 Java/J2ME 在这方面做得更好?如果没有,这是如何完成的?
[编辑] Swing 似乎支持我通过 SwingUtilities.invokeLater() 和 invokeAndWait() 方法提出的问题。J2ME 是否有等效的框架?