ProKiLL
@ProKiLL
Системный администратор

Как реализовать экран загрузки при работе с приложением?

Добрый день!

Есть программа которая передает информацию от клиента к серверу с подтверждением от сервера корректности ввода (время операции от 5 до 10 сек), в это время необходимо организовать окно загрузки (что то типа "Просьба подождать идет отправка и проверка введенных данных"). Как только сервер ответит клиенту о корректности ввода необходимо спрятать окно загрузки и продолжить работу с программой.

Просьба подтолкнуть в каком направлении копать и если можно то кинуть ссылку на примеры таких операций.
  • Вопрос задан
  • 764 просмотра
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
1. Создаете информационное окно.
2. Показываете его через ShowDialog
3. В этом окне на Shown создаете и запускаете BackgroundWorker в котором выполняется ваш запрос.
4. На RunWorkerCompleted закрываете модальное окно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
byte916
@byte916
Для решения этой задачи можно использовать async/await. Для того нужно сделать у вызываемой функции возвращаемый тип Task (или дженерик - Task<нужный тип>), и добавить ключевое слово async (в данном примере это метод Run()). В месте вызывания нужно добавить await. К методу из которого происходит вызов - тоже нужно добавить async (в данном примере это button1_Click, но ему Task добавлять не обязательно - этот метод вызывается синхронно).

private async void button1_Click(object sender, EventArgs e)
        {
            await Run();
        }

        public async Task Run()
        {
            var form = new Form2();
            form.Show();
//Тут делаем нужную работу
            form.Close();
        }

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

Войдите, чтобы написать ответ

Похожие вопросы