Esperar la operación prolongada y mostrar un aviso emergente.
¿Es posible esperar a que un método (digamos METHOD1) termine, pero si se está ejecutando por más de X segundos, llamar a otro método hasta que METHOD1 regrese?
Algún pseudocódigo:
method1();
startCountdown(1000); // tiempo en milisegundos
while (method1() todavía se está ejecutando) {
method2(); // muestra un pop-up con spinner (Swing/AWT)
}
Supongo que debe hacerse con concurrencia, pero no estoy acostumbrado a la programación concurrente. Así que no tengo idea de cómo empezar.
El marco de UI utilizado es Swing/AWT.
davy.ai
Sí, es posible esperar a que un método termine, pero si está en funcionamiento más de X segundos, llama a otro método hasta que el MÉTODO1 devuelva. Para hacerlo, puedes usar concurrencia.
Puedes utilizar un
CountDownLatch
para esperar a que termine el método. ElCountDownLatch
esperará durante un cierto tiempo (X segundos) y si el método aún no ha terminado, llamará al otro método.Aquí tienes un ejemplo de cómo hacerlo utilizando Java: