C
cederick
Neues Mitglied
- 0
Eine einfache und wahrscheinlich auch schnell beantwortete Frage, ich habe eine Runable die soweit auch funktioniert aber wenn ich die Thread.sleep(10000); Metode mit einer While- Schleife austausche passiert es ziemlich oft das auch der MainThread beansprucht wird und ich frage mich woran das liegt und natürlich warum es mit einer geschätzten Wahrscheinlichkeit von 30 % dann doch funktioniert.
der Thread wird so gestartet:
und die Runable sieht so aus:
und so sieht die Runable aus wenn ich eine While-Schleife verwende:
der Thread wird so gestartet:
Code:
public void surf_view_resume() {
this_thread = new Thread(this);
isrunning = true;
this_thread.start();
}
und die Runable sieht so aus:
Code:
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
h.post(new Runnable() {
@Override
public void run() {
calc.calc_resume();
running_listener.onisrunning(isrunning);
}
});
while (isrunning) {
if (holder.getSurface().isValid() && !calc.isStartcalc()) {
calc.setStartcalc(true);
Canvas canvas = holder.lockCanvas();
setcanvas(canvas);
holder.unlockCanvasAndPost(canvas);
}
}
}
und so sieht die Runable aus wenn ich eine While-Schleife verwende:
Code:
@Override
public void run() {
int i = 0;
while (i <= 1000000000) {
i++;
}
h.post(new Runnable() {
@Override
public void run() {
calc.calc_resume();
running_listener.onisrunning(isrunning);
}
});
while (isrunning) {
if (holder.getSurface().isValid() && !calc.isStartcalc()) {
calc.setStartcalc(true);
Canvas canvas = holder.lockCanvas();
setcanvas(canvas);
holder.unlockCanvasAndPost(canvas);
}
}
}