Главная / Создание Windows-приложений на основе Visual C# / Вы разрабатываете приложение, в котором используется асинхронное обновление пользовательского интерфейса. Для этого вы создали метод Upgrade, в котором и происходит обновление: private void Upgrade() { // Код для обновления. } Асинхронный запуск метода Up

Вы разрабатываете приложение, в котором используется асинхронное обновление пользовательского интерфейса. Для этого вы создали метод Upgrade, в котором и происходит обновление: private void Upgrade() { // Код для обновления. }

Асинхронный запуск метода Upgrade должен происходить в обработчике события Event:

delegate void DelegateForUpgrade(); private void UpgradeRun_Event (object sender, System.EventArgs e) { DelegateForUpgrade DelForUpg = new DelegateForUpgrade(Upgrade); DelForUpg.BeginInvoke(null, null); }

При запуске приложения и при наступлении события Event вы обнаружили, однако, что обновления пользовательского интерфейса не происходит. Укажите причину и способ ее устранения:

вопрос

Правильный ответ:

в результате вызова метода UpgradeRun_Event не происходит обновления пользовательского интерфейса в основном потоке. Для решения проблемы необходимо в этом обработчике вызвать метод, в котором будет вызываться метод Upgrade через экземпляр делегата MethodInvoker.
в обработчике реализована некорректная синтаксическая конструкция. Правильный вариант выглядит следующим образом: private void UpgradeRun_Event (object sender, System.EventArgs e) { DelegateForUpgrade DelForUpg = new DelegateForUpgrade(); DelForUpg.Upgrade(); DelForUpg.BeginInvoke(null, null); }
в обработчике реализована некорректная синтаксическая конструкция. Правильный вариант выглядит следующим образом: private void UpgradeRun_Event (object sender, System.EventArgs e) { DelegateForUpgrade DelForUpg = new DelegateForUpgrade(); DelForUpg.Upgrade(null); DelForUpg.BeginInvoke(null, null); }
в результате вызова метода UpgradeRun_Event не происходит обновления пользовательского интерфейса в основном потоке. Для решения проблемы необходимо в этом обработчике вызвать метод, в котором будет вызываться метод Upgrade через экземпляр делегата EndInvoke
Сложность вопроса
75
Сложность курса: Создание Windows-приложений на основе Visual C#
77
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
спасибо за пятёрку
31 янв 2020
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.