Theres probably many ways of solving this problem, but I'm wondering what is considered 'best practice' or a good design pattern.

Consider a GUI doing various tasks in background, any of which could error and you want to display a messagebox to the user. Obviously you cant have multiple modal windows, so what is the best way to handle the situation where several of your threads have errored ? (or even the scenario where the GUI is currently displaying another modal dialog, and a thread errors and wants to show a message) ?