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

Worker della WebEngine bloccato in running

  1. #1
    Mattia91 non è in linea Novello
    Buonasera,
    sono un paio di giorni che ci sto sbattendo la testa, ma ancora non capisco dove sta l'errore.
    	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 22:41 

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

  3. #3
    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 ...
    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Background worker errore cross-thread
    Da TimoFran nel forum Visual Basic .Net
    Risposte: 9
    Ultimo Post: 06-08-2016, 15:00
  2. c# file bloccato!
    Da giangi_luca nel forum C#
    Risposte: 4
    Ultimo Post: 16-10-2009, 21:47
  3. [ACCESS] DB bloccato
    Da moddo nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 26-05-2008, 19:54
  4. file MDB bloccato
    Da antonio75 nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 18-06-2005, 18:42
  5. access bloccato
    Da xfree nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 14-05-2005, 19:06