【发布时间】:2018-04-28 20:10:36
【问题描述】:
我有一个数据库,用于存储例如TextureAtlas 的图像键。因为数据库查询不应该阻塞主线程,所以查询在另一个线程上执行。
现在我想创建一个场景 2d 演员并将其返回,以便显示。
new Thread() {
@Override
public void run() {
String resultOfQuery = ...;
final Image image = new Image(atlas.findRegion(resultOfQuery));
Gdx.app.postRunnable(new Runnable() {
@Override
public void run() {
listener.onImageCreated(image);
}
});
}
}.start();
如您所见,我正在新线程中创建图像,然后将其传递给主线程。但 libGDX wiki 声明:
你不应该对任何与图形或音频相关的东西执行多线程操作,例如。使用来自多个线程的 scene2D 组件。
我是否必须在主线程上创建和演员到舞台?或者,如果我在另一个线程中创建它,然后将它添加到主线程的舞台上,可以吗?
【问题讨论】:
标签: java multithreading libgdx thread-safety scene2d