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