У меня есть длинный метод, который должен запускаться в потоке пользовательского интерфейса. (Devex - gridView.CopyToClipboard()
)
Мне не нужно, чтобы пользовательский интерфейс был отзывчивым при копировании, и я добавил заставку, чтобы пользователь не скучал из своего ума.
Когда я запускаю эту программу, все хорошо.
Неисправность начинается, когда я запускаю другую программу, которая, в свою очередь, запускает новый процесс и запускает на нем программу. Через несколько секунд после копирования заголовок читает (Not Responding), и курсор мыши показывает занятый, он, конечно, очищается в течение нескольких секунд, но я хотел бы избавиться от него, так как он дает пользователю неправильное ощущение, что программа неисправен.
Есть ли способ установить "Тайм-аут" процесса, который я создаю?
EDIT:
Основная программа вызывает следующий код:
fillsProcess = new Process();
fillsProcess.StartInfo.FileName = Application.ExecutablePath;
fillsProcess.Start();
В fillsProcess, когда нажимается определенная кнопка, вызывается следующий код:
gridViewToCopy.CopyToClipboard();
Эта строка кода занимает некоторое время, и через несколько секунд окно fillsProcess выглядит невосприимчивым, поскольку этот метод работает в потоке пользовательского интерфейса.
РЕДАКТИРОВАТЬ 2-й:
По-видимому (и действительно вполне понятно)
gridViewToCopy.CopyToClipboard();
Не единственный метод, вызывающий эту проблему. Многие методы Devex должны запускаться в потоке пользовательского интерфейса (например, сортировка данных, фильтрация данных).
Так спасибо всем, кто предложил конкретное решение (которое либо работало, либо не помогло), но мой исходный вопрос снова появляется снова:
Есть ли способ изменить время ожидания или как-то контролировать полное "неответное" фиаско?