I wrote a rather lengthy initialization script, called from my Client Startup event. I pushed the bulk of the work onto a background thread with invokeAsynchronous, and updated a splash screen with invokeLater. Once I was certain that all of my necessary initialization had finished, I opened my annunciator window, and closed my splash screen.
The annunciator window contains a large, paintable canvas that previously drew icons to represent physical stations. It had been working quite well for months. Unfortunately, reorganizing my code seems to have broken the repaint event, even though I haven’t altered it. It takes a few extra seconds to draw some text and lines, then it draws a single station, which it happily updates. It will not draw the other stations.
Could opening those various background threads have harmed the performance of the paintable canvas? According to my traces, all of the tasks that I put on the background threads have finished. Is there some sort of final cleanup I need to do to destroy those threads?