Я очень извиняюсь за этот длинный пост. Мне нужна помощь по вопросам c # wpf. Я построил сложный пользовательский интерфейс (как-то), и есть некоторые кнопки ... как запуск и остановка и другие.
Когда я нажимаю кнопку «Пуск», процесс запуска начинается с связи с некоторым уровнем протокола и другими, и это длительный процесс ... и во время этого процесса я должен показать некоторый интерфейс уведомления, такой как «Введите текст», «Выбрать что-то "и т.д ... на этот раз мне нужно показать какой-нибудь объект окна wpf ... и через некоторое время мне нужно автоматически уничтожить окно и снова приступить к обработке.
Сначала я попытался запустить выполнение в классе главного окна. Но это приводит к тому, что когда начинается выполнение ... пользователь не может ничего щелкнуть, и пользовательский интерфейс не отвечает, а просто зависает. Я исследовал проблему ... и обнаружил, что пользовательский интерфейс занят обработкой при выполнении на уровне протокола, поэтому он не отвечает.
Вот моя проблема ... Можете ли вы дать мне какое-то решение, которое ...
- у меня будет 2 кнопки .. запустить и остановить
- когда я нажимаю кнопку запуска ... запускается большой процесс (например, вложенный цикл for с большим int, который будет продолжаться в течение 50 секунд) в функции с именем Processor.
- во время обработки функция Processor создаст несколько окон и покажет их ожидание в течение 5-10 секунд, а также уничтожит их. или пользователь нажимает; s в окне
- И все время кнопка «Стоп» должна нажиматься, чтобы при нажатии кнопки «Стоп» процесс был остановлен.
Я пробовал это с backgroundworker, dispatcher ... и используя отдельный поток. но не повезло. Я предполагаю, что что-то упустил. потому что, если я жду некоторого результата, показывающего окно .. окно определенно будет висеть .. и если я разделю их с другим потоком .. это не будет общаться друг с другом. пожалуйста, дайте мне несколько предложений