Reden Rodriguez Ответов: 2

Как я могу нажать другую кнопку, пока другая кнопка сохраняет данные?


у меня есть 1 кнопка под названием print button внутри нее много проверки, а в конце строки кода находится функция печати. Проверка данных, если они проходят требования, занимает от 10 до 15 секунд, я хочу сократить время ожидания, что делать, если у меня есть 2 кнопки, одна из которых-кнопка сохранения для проверки данных, и пока я жду, я могу нажать кнопку печати, как я могу нажать кнопку печати, в то время как другая кнопка (Сохранить) сохраняет/проверяет данные?

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

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

2 Ответов

Рейтинг:
18

Aydin Homay

Привет,

Идея разделения большой задачи (проверка, сохранение, печать) на несколько меньших задач всегда хороша. Итак, то, как вы думаете, правильно. Теперь вам просто нужно перейти к многопоточному программированию. Это означает, что вы создадите поток и назначите ему действие сохранения для запуска независимо от основного потока, это позволит вам не быть заблокированным процессом сохранения, после чего вы сможете следовать своей собственной идее иметь отдельную кнопку для печати.

Если это не решило вашу проблему, то, пожалуйста, оставьте комментарий, и я помогу Вам улучшить свое решение, пока ваша проблема не будет решена.

Овации,
АХ


jsc42

Многопоточность-это правильный путь, но в качестве быстрого взлома вы можете (часто, но не всегда) уйти с приложением.Функция doevents. Если вы все же идете по этому слегка рискованному маршруту, отключите кнопку сохранения при нажатии и снова включите ее после завершения сохранения; в противном случае нетерпеливые пользователи будут продолжать нажимать ее.

Aydin Homay

Тогда конечный пользователь должен ждать от 10 до 15 секунд !!!