Я унаследовал приложение Winforms, которое выполняет много длительных вызовов на сервер приложений из потока пользовательского интерфейса, поэтому пользовательский интерфейс остается невосприимчивым, непригодным к использованию, незаменимым в течение некоторого времени. (Что заставляет меня действительно пойти AAAAAAAAARGH!)
Я планирую переместить вызовы сервера в фоновый поток и отключить пользовательский интерфейс, но перемещать и закрывать - в то время как фоновый поток выполняет свою работу.
Итак, что было бы лучшим способом запретить ввод пользователя в мое приложение? Я размышляю о "модальном диалоге прогресса", но я бы предпочел решение, которое не заставило меня бросать визуальные изображения в лицо пользователю (некоторые серверные операции выполняются менее чем за 500 мс, поэтому диалог не является оптимальным...)
Есть ли какой-либо способ в Winforms, чтобы пользователь не запускал действия или не изменял данные в приложении, а пропускал несколько избранных вещей (изменение размера, отображение, скрытие и семейство и закрытие окна пользователем)? Я бы предпочел способ, который не заставляет меня обращаться к каждому элементу пользовательского интерфейса в моих формах и устанавливать его на отключенный... их довольно много, и это приложение действительно "взломано в дизайнере пользовательского интерфейса", пока оно не покажет яркие вещи "стиль исходного кода. Никакой способ рефакторинга КАЖДОГО вонючего до даты выпуска...
О, кстати, это приложение живет в .net framework 2