Elegant shutdown of running threads

Great solution for multithreading, and nice stepping into final idea.

I have a question though, what if an attempt of closeEvent happened, you know like closing the GUI while there is one thread or more running in the threadpool, this has thrown an exception, I have one solution in mind but I was wondering if there’s a better one?

My solution is to signal some event per say from closeEvent function and wait for sometime say 5 seconds, while the task at hand finishes, and by the end of it a signal is given from the thread that it’s clear to quit the GUI, thanks for the time