Schau mal hier
Sowas funktioniert allerdings nur, wenn nichts auf der Konsole ausgegeben werden soll.
MFG
zEriX
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ConsoleAbortExample {
public static void main(String[] args) {
ExecutorService executorService = Executors.newSingleThreadExecutor();
Counter c = new Counter();
executorService.execute(c);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
try {
line = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (line.equalsIgnoreCase("exit")) {
c.setStop(true);
System.out.println(c.getCount());
}
}
private static class Counter implements Runnable {
private int counter = 0;
private boolean stop = false;
public void count() {
while (!isStop()) {
counter++;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public boolean isStop() {
return stop;
}
public void setStop(boolean stop) {
this.stop = stop;
}
public void run() {
System.out.println("Start counter");
count();
System.out.println("Counter finished");
}
public int getCount() {
return counter;
}
}
}
Sowas funktioniert allerdings nur, wenn nichts auf der Konsole ausgegeben werden soll.
MFG
zEriX