webForumDet fria alternativet

Känna av när programmet avbryts

2 svar · 640 visningar · startad av nitro2k01

nitro2k01Medlem sedan aug. 20039 342 inlägg
#1

Jag kör ett program i konsolen, och jag undrar om det går att känna av om det avslutas med Ctrl+C, istället för att det bara dör som nu.

ViktorMedlem sedan aug. 20021 752 inlägg
nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Här är ett lyckat experiment:

class ThreadTest extends Thread{
    boolean exit = false;
    boolean exitSignal = false;

    public static void main(String[]s){
	new ThreadTest();
    }

    ThreadTest(){
	this.start();
	// register the shutdown hook
    
	Runtime.getRuntime().addShutdownHook(new Thread() {
                public void run() {
                    System.out.println("In hook!");
		    exit = true;
		    while(!exitSignal){;}
		    System.out.println("Now leaving hook!");
                }
            });;
    }
    
    public void run(){
	System.out.println("Thread is running!");
	while(!exit){;}
	exitSignal = true;
	System.out.println("Thread is dying!");
    }
}
136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)