I’m curious: how do you prevent your window from looking like it’s frozen during lengthy operations? For example, suppose a user clicks a button that will trigger a very long event, such as copying a 10 GB file. While the really long event is underway, how do you free up your window so that it doesn’t appear unresponsive? I usually resort to writing two separate programs--the GUI and a “worker”--and I just launch the worker when needed.
I realize threads are an option, but in my experience they are not always reliable (many Win32::GUI modules don’t seem to be thread-safe).