【发布时间】:2008-11-15 14:09:36
【问题描述】:
我正在编写一个 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 的等效框架?
【问题讨论】:
-
刚刚用 J2ME 特定信息完成了我的回答
-
谢谢!我的应用是 LCDUI,所以我想我不必担心这个(至少如果我相信 David Pierce)。
标签: c# java multithreading java-me ui-thread