2
我有一个LibGDX应用程序,在该应用程序中绘制了一个线程,并为客户端或服务器创建了一个线程。连接使用Kryonet完成。当你的对手创建做了一个消息,收到临客这样:从另一个线程中的对象运行方法
public void received(Connection con, Object object) {
TroopMessage tm = (TroopMessage)object;
fortress.map.addSoldier(tm.kind, true);
System.out.println("recieved");
connection = con;
}
当这个回调是所谓的(它是正确的),我得到“没有在当前线程中的OpenGL上下文”。我认为它正在寻找MyClient Thread中的对象堡垒。我想调用fortress.map.addSoldier,它引用另一个线程中当前存在的对象。
public class Fortress extends Game implements ApplicationListener{
private OrthographicCamera camera;
private SpriteBatch batcher;
public static MyServer server;
public static MyClient client;
public static Map map;
[....]
如何从另一个线程调用方法?
在此先感谢
“对象”不属于或存在于特定线程中,因此这里不是问题。 – Keppil
你试过搜索吗? http://stackoverflow.com/questions/14347340/no-opengl-context-found-in-the-current-thread-how-do-i-fix-this-error – rethab
是的,我已经看到,但他们谈论“所以你只能从同一个线程访问这个上下文”。我怎样才能做到这一点? – yafrack