-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
1 | |
Выполнять ряд действий, пока окно не закрыто. Как это сделать?03.11.2018, 18:37. Показов 4764. Ответов 69
Метки нет (Все метки)
Здравствуйте!
В моей программе будет блок действий, которые необходимо выполнять с задержкой до того момента, пока окно не будет закрыто. Как это сделать? Для примера будем с задержкой в одну секунду увеличивать переменную на 1, которая изначально равна 0, а когда закроем окно - результат запишется в файл.
0
|
03.11.2018, 18:37 | |
Ответы с готовыми решениями:
69
Как сделать, так, чтобы ряд действий в программе выполнялся до тех пор, пока пользователь не нажмёт на крестик Выполнение каких-либо действий в цикле, пока приложение не будет закрыто Можно ли запретить юзеру возвращаться из окна (window.open) в родительское окно, пока не оно не будет закрыто? Выполнять приложение до тех пор, пока пользователь не закроет окно |
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 21:18 [ТС] | 21 |
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 21:22 [ТС] | 23 |
0
|
Модератор
|
|
03.11.2018, 21:27 | 24 |
Блин! Это из-за разных потоков в таймере и у элементов.
Это надо сидеть и переделывать - так с просто не смогу сказать. Я таким образом приложения не собираю - поэтому с такой ошибкой не сталкивался. Надо собирать приложение подобное Вашему и проверять.
1
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 21:31 [ТС] | 25 |
А можно как-то переделать приложение, но "малой кровью"?
Чтобы не все под ноль писать заново
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 21:40 [ТС] | 27 |
0
|
Модератор
|
|
03.11.2018, 21:42 | 28 |
Много кода?
Посмотрите в теме Как передать значение Slider с формы 2 на форму 1? Там есть таймер который выводит информацию в элементы окна. Если делать правильно, то делать надо как в последнем посте.
1
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 21:47 [ТС] | 29 |
Всего 4 формы:
- авторизация - настройки - вывод окна с диалогами (всего 8 избранных диалогов) - окно с историей сообщений с одним из 8 избранных пользователей Спасибо большое! Попробую реализовать. Вы очень сильно помогли!
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 21:54 [ТС] | 31 |
Там в кодах других окон черт ногу сломит) Я писал это все сильно на скорую руку
Это приложение вообще мой самый первый опыт C#+WPF+vk net Попробую дальше самостоятельно разобраться Вы и так мне очень сильно помогли, за что Вам огромное спасибо!
0
|
Модератор
|
|
03.11.2018, 21:58 | 32 |
НУ, у Вас приложение - 4 окна. Vk - я сам замучаюсь в нём разбираться. Хотите чтобы посмотрел ставьте TeamViewer
Добавлено через 1 минуту Вам другие окна зачем? Вам оттуда нужна только связь Model-ViewModel-View. Как данные (цвет) попадают от таймера в окно.
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 22:08 [ТС] | 33 |
Приложение идет последовательно. Сначала авторизуемся - затем настраиваемся (эти два окна можно слить в одно, если знать как. В Qt Creator есть для этого слайдер, который можно поместить на форму. В WPF я не знаю, есть ли такая штука), но дальше уже идут нестандартные окна и с ними отдельная работа идет
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 22:12 [ТС] | 35 |
0
|
Модератор
|
|
03.11.2018, 22:19 | 36 |
А причём здесь Qt Creator?
Добавлено через 2 минуты Попробуйте использовать вместо Timer класс DispatcherTimer - он по моему в одном потоке с UI элементами работает. Добавлено через 50 секунд https://metanit.com/sharp/uwp/4.11.php
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
03.11.2018, 22:20 [ТС] | 37 |
Я говорю, что в Qt Creator можно на одной форме сделать несколько страниц при помощи соответствующего виджета и передавать данные уже не между формами, а между страницами
Это вроде попроще. А в VS я не знаю, есть ли такое Добавлено через 53 секунды Хорошо, сейчас пробну
0
|
Модератор
|
|
03.11.2018, 22:21 | 38 |
Цитата "Класс DispatcherTimer из пространства имен System.Windows.Threading применяется в WPF-приложениях и выполняется в рамках потока пользовательского интерфейса."
https://professorweb.ru/my/csh... 1/1_15.php
1
|
177 / 151 / 31
Регистрация: 28.09.2018
Сообщений: 204
|
|
03.11.2018, 22:25 | 39 |
Imperion, на всякий случай: при подобном применении таймера важно не наступить на классические грабли с таймером, когда обработчик тика таймера работает дольше, чем период таймера. А в ситуации, когда по таймеру запрашиваются данные с интернета, в это влетаешь с 99,9% вероятностью...
Если данные грабли учтены, то сорри, не вникал в код...
1
|
Модератор
|
|
03.11.2018, 22:27 | 40 |
Можно. Но прямой реализации нет. Лучше UserControl создать. Но в любом случае, WPF очень сильно завязана на паттерн MVVM. И использовать WPF вне этого паттерна - это создание проблем самому себе.
Добавлено через 1 минуту Imperion, прислушайтесь к посту griffon88. Лучше переделайте нормально в паттерне MVVM.
1
|
03.11.2018, 22:27 | |
03.11.2018, 22:27 | |
Помогаю со студенческими работами здесь
40
Как не дать выбрать окно, пока запущено другое, например как это делает MessageBox Как заблокировать вызов нового дочернего окна пока не закрыто предыдущее в MDI parent form div-ное окно!или я не знаю как это сделать( Win API, как отследить было ли закрыто окно приложения. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |