I don't want my users to be able to press buttons/manipulate objects in my
software during a "critical operation" (defined as a write operation back to
the database, which happens on various threads). In order to prevent this,
I am "disabling" UI components before starting the write thread and then
"enabling" them again when the thread completes. One of the problems with
this approach is that certain controls (listbox, treeview) render themselves
"disabled" for the duration of the thread, which may be either 0.5 seconds
or as much as 30 seconds. This is causing an aesthetically displeasing
"flashing" of the UI. Is there any way of preventing UI interaction without
showing a modal progress dialog? (my thread executes delgates on the main
form in order to update the very components I would like to be disabled to
the user, so I don't think a modal dialog will work).