- Forum-Beiträge: 359
06.06.2014, 20:08:22 via Website
06.06.2014 20:08:22 via Website
Wenn man Actionen in einem anderen Thread ausführen möchte, macht man dies normalerweiße mit
loop.post(new Runnable()...)
Das Problem ist jedoch, wenn ich eine lokale Variable habe, kann ich diese nicht an den anderen Thread uebergeben...
Ich habe das Problem gelöst, in dem ich eine Klasse geschrieben habe die Runnable implementiert.
/**
* Um Code in einem Anderen Thread auszufuehren
* @author Fasibio
*
*/
public abstract class ThreadAcrossRunable implements Runnable {
protected Object[] arguments;
/**
* Argumente die man in anderen Thread übergeben will
* @param args
*/
public ThreadAcrossRunable (Object[] args){
arguments = args;
}
@Override
public void run() {
runthis(arguments);
}
/**
* In dieser Methode wird der entsprechende Code ausgeführt
* @param args
*/
public abstract void runthis(Object[] args);
}
Nun kann man z.B.: so das ganze aufrufen:
Object[] args = {object1, object2};
mainLoop.post(new ThreadAcrossRunable(args) {
@Override
public void runthis(Object[] args) {
machwas...
}
});
So kann wie gewohnt mit inneren anonymen Klassen arbeiten und trotzdem Parameter übergeben.
Wenn ihr einen Besseren Lösungweg habt freu ich mich ihn zu hören
Fabian Simon
— geändert am 12.06.2014, 15:01:48