С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
1

Окно ожидания загрузки

17.04.2015, 16:22. Показов 2603. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет знатоки c#

у меня есть окошко, которое создается в новом потоке и показывается на экране до тех пор, пока какая-то длительная операция не закончит свое действие..

вот код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
public class WarteFenster
    {
        private Thread StatusThread = null;
        private ProgressWindow Popup = null;
        private string titel;
        public string warteText;
 
        public WarteFenster(string Titel, string WarteText)
        {
            titel = Titel;
            warteText = WarteText;
        }
        public WarteFenster(string WarteText)
        {
            warteText = WarteText;
        }
 
        public void Show()
        {
            //create the thread with its ThreadStart method
            this.StatusThread = new Thread(() =>
            {
                try
                {
                    this.StatusThread.IsBackground = true; //Original true
 
                    if (!String.IsNullOrEmpty(titel))
                        this.Popup = new ProgressWindow(titel, warteText);
                    else
                        this.Popup = new ProgressWindow("Bitte warten..", warteText);
 
                    this.Popup.progress.IsIndeterminate = true;
                    this.Popup.ShowDialog();
                    this.Popup.Closed += (lsender, le) =>
                    {
                        //when the window closes, close the thread invoking the shutdown of the dispatcher
                        this.Popup.Dispatcher.InvokeShutdown();
                        this.Popup = null;
                        this.StatusThread = null;
                    };
 
                    //this call is needed so the thread remains open until the dispatcher is closed
                    System.Windows.Threading.Dispatcher.Run();
 
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
                }
            });
            //run the thread in STA mode to make it work correctly
            this.StatusThread.SetApartmentState(ApartmentState.STA);
            this.StatusThread.Priority = ThreadPriority.Normal;
            this.StatusThread.Start();
 
            //Ohne diese Zeile schißt manchmal sich das Fenster nicht
           // System.Threading.Thread.Sleep(70);
        }
 
        public void Close()
        {
            if (this.Popup != null)
            {
                //need to use the dispatcher to call the Close method, because the window is created in another thread, and this method is called by the main thread
                this.Popup.Dispatcher.BeginInvoke(new Action(() =>
                {
                    this.Popup.Close();
                }));
            }
        }
    }
окно представляет собой 2 текстблока и прогрессбар.

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

C#
1
2
3
4
5
//использование:
WarteFenster wait = new WarteFenster("Загрузка данных..", "пожалуйста ждите");
wait.Show();
//загрузка данных
wait.Close();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2015, 16:22
Ответы с готовыми решениями:

Окно ожидания
подскажите как организовать окно ожидания в wpf. у меня есть окошко с несколькими кнопками, по...

Окно загрузки модально без остановки выполнения программы
Возможно глупый вопрос, но я что то не знаю как сделать правильно. Хочу во время загрузки файла...

Строка ожидания и загрузки
Еще раз привет всем. Может кто нибудь знает как на С++ написать строку ожидания типа Please wait......

OpenerDirector.open() Время ожидания загрузки страницы
Привет. С помощью opener хожу по ссылкам и иногда попадаю на большие файлы, которые начинают...

1
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
21.05.2015, 10:13  [ТС] 2
вопрос актуален...
0
21.05.2015, 10:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2015, 10:13
Помогаю со студенческими работами здесь

Окно ожидания для пользователя
День добрый. Интересует вопрос Есть какие то методы, советы, решения для демонстрации...

Окно ожидания во весь экран
После загрузки системы открыла "Мой компьютер" и после этого вылезло окно "Подождите" во весь...

Всплывающее окно на время ожидания
В ходе исполнения программы (WinApi) иногда происходит приостановка на несколько секунд (например...

Окно ожидания завершения операции, пустой QDialog
Доброго времени суток всем. Qt 5.3.2, Qt Creator 3.2.1 Пытаюсь сделать QDialog с QProgressBar...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru