+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Worker della WebEngine bloccato in running

  1. #1
    Mattia91 non è in linea Novello
    Post
    38

    Worker della WebEngine bloccato in running

    Buonasera,
    sono un paio di giorni che ci sto sbattendo la testa, ma ancora non capisco dove sta l'errore.
    codice:
    	private Set<Node> tree;
    	private static WebEngine we;
    	
    	public SimpleParser(URL url){
    		if(we == null){
    			Runnable p = ()->{ 
    				we = new WebView().getEngine();
    				we.getLoadWorker().stateProperty().addListener((k,t,f) ->{
    					System.out.println(we.getLoadWorker().stateProperty());
    					if(f.equals(Worker.State.SUCCEEDED) || f.equals(Worker.State.FAILED)){
    						Document doc = we.getDocument();
    						if(doc != null){
    							tree = new HashSet<Node>();
    							createTree(doc);
    						}
    						else tree = null;
    					} 
    				});
    				};
    				
    			JFX.exec(p);
    			JFX.exit();
    		}
    		
    		Runnable r = ()-> {
    
    			we.load("");
    			System.out.println(we.getLoadWorker().stateProperty());
    //			while (we.getLoadWorker().isRunning())
    //				try {
    //					Thread.sleep(10L);
    //				} catch (InterruptedException e) {
    //					// TODO Auto-generated catch block
    //					e.printStackTrace();
    //				}
    			we.load(url.toString());
    //			System.out.println();
    //			while(we.getLoadWorker().isRunning())
    //				try {
    //					System.out.println(we.getLoadWorker().getWorkDone());
    //					Thread.sleep(10L);
    //				} catch (InterruptedException e) {
    //					// TODO Auto-generated catch block
    //					e.printStackTrace();
    //				}
    			System.out.println(we.getLoadWorker().stateProperty());
    		};
    		JFX.exec(r);
    		JFX.exit();
    	}
    In pratica quando carico una pagina vuota con il metodo load("") funziona tutto come dovrebbe, ma se poi provo a utilizzare lo stesso metodo con una url, il worker entra in running e non arriva mai al SUCCEEDED o FAILED
    la classe JFX ha il metodo statico exec(Runnable run) che semplicemente lancia il runnable e il metodo exit() per terminare il thread lanciato con exec. Il problema non è nella classe JFX.
    Spero qualcuno possa aiutarmi
    Ultima modifica di Mattia91; 29-05-2015 21:41 

  2. #2
    Mattia91 non è in linea Novello
    Post
    38
    Risolto, per favore eliminate il thread

  3. #3
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    14,948
    Blogs
    5
    No, i thread non si eliminano solo perché hai risolto, anzi, dovresti comunicare come hai fatto perché altri possano usufruirne in caso di problema simile ...
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi