Member 12577015 Ответов: 2

Как создать адаптивное приложение с помощью C#


Я разрабатываю настольное приложение для определенных математических вычислений. Я закончил создавать графический интерфейс и кодирование своего приложения. Однако, когда я запускаю приложение и нажимаю кнопку, которая выполняет эту операцию, приложение не отвечает более 15 минут. Я поискал в интернете и увидел что-то об использовании потока backgroundworker, который выполняет эту операцию и обновляет элемент управления progressbar в пользовательском интерфейсе. Это тоже не сработало. Индикатор прогресса останавливается на отметке 2%. Вычисление является тяжелым и делает несколько циклов. Мне нужен совет, что делать.

Что я уже пробовал:

Я поискал в интернете и увидел что-то об использовании потока backgroundworker, который выполняет эту операцию и обновляет элемент управления progressbar в пользовательском интерфейсе. Это тоже не сработало. Индикатор прогресса останавливается на отметке 2%. Вычисление является тяжелым и делает несколько циклов. Мне нужен совет, что делать.

2 Ответов

Рейтинг:
2

OriginalGriff

BackgroundWorker-это правильный путь: но вы должны сигнализировать об обновлениях индикатора выполнения в соответствующих точках вашей задачи - вы не можете просто запустить работника и предположить, что он автоматически обновит прогресс для вас. Поэтому посмотрите на отчет о прогрессе пару раз в ваших циклах, а не только один раз в начале и еще раз в конце.


Рейтинг:
2

PIEBALDconsult

Вот ссылка на одну из моих самых ранних статей CP; она может оказать некоторую помощь:

ProgressDialog: для выполнения длительного кода с некоторой потокобезопасностью[^]

Я понимаю, что статья не соответствует сегодняшним стандартам статьи, и я бы, конечно, сообщил о "крайне низком качестве", если бы она была представлена сегодня, но я не уверен, что ее стоит переделывать. Пожалуйста, дайте мне знать ваши мысли.