Implement multithread to run algorithm (to keep the control on the GUI when algorithm is running and avoid some runtime error)
use another thread to run algorithm (improve the previous version)
Small graphical improvements