Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
37 / 32 / 4
Регистрация: 23.01.2009
Сообщений: 141
1

Как сделать две формы, выполняющиеся в разных потоках.

07.05.2009, 14:24. Показов 2074. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если упростить пример, то есть допустим метод, который создаёт вторую форму, и во время своего исполнения прогрессбар на форме №2 растёт.
C#
1
2
3
4
5
6
7
8
9
10
private void button10_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
            for (int i = 0; i < 100; i++)
            {
                Thread.Sleep(100);
                f2.progressBar1.Value = i;
            }
        }
Как сделать, чтобы форма2 не зависала?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2009, 14:24
Ответы с готовыми решениями:

Метод выполнить в 11 разных потоках, соответственно для разных входных массивов
Здравствуйте, начал потихоньку разбираться в многопоточном программирование и не могу до конца...

Как запустить метод класса одновременно в разных потоках?
Как запустить метод класса одновременно в разных потоках? Будет ли конфликт между ними, или создать...

Как сделать две формы в одной
Подскажите плиз, как сделать две формы в одной? к примеру как в веб браузере открыты две страници и...

Циклы обработки сообщений разных форм в разных потоках
Здравствуйте! Подскажите как реализовать циклы обработки сообщений разных форм в разных потоках. У...

3
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
07.05.2009, 14:35 2
исполнения
Вы танцор?

используйте BackgroundWorker
0
37 / 32 / 4
Регистрация: 23.01.2009
Сообщений: 141
07.05.2009, 15:01  [ТС] 3
Танцор моё второе имя.
Создавать потоки я умею. Проблема в том, что я не знаю что поместить в параллельный поток. Если поместить всё - то ничего не должно изменится.

Добавлено через 13 минут 41 секунду
Мда.. Вот такой способ придумал, но мне кажется можно как-то легче..
Form1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
private void button10_Click(object sender, EventArgs e)
       {
            Form2 f2 = new Form2();
            f2.Show();
            ThreadPool.QueueUserWorkItem(Method, f2);          
        }
        void Method(object value)
        {
            for (int i = 0; i < 100; i++)
            {
                Thread.Sleep(100);
                (value as Form2).Invoke((async)(value as Form2).asyncmethod, i);
 
            }
 
        }
        delegate void async(object value);
Form2:
C#
1
2
3
4
 public void asyncmethod(object value)
        {
            progressBar1.Value = (int)value;
        }
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
12.05.2009, 05:30 4
Поддерживаю IT-Skyline. Используйте BackgroundWorker. Не нужно будет городить огород.
0
12.05.2009, 05:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2009, 05:30
Помогаю со студенческими работами здесь

Как сделать чтобы при запуске программы открывались две формы одновременно?
Как сделать чтобы при запуске программы открывались две формы одновременно?

Как в разных потоках сделать последовательный вывод строк?
Ошибка Print, при многопоточии: Ну всем привет, загвостка вот в чём. Есть 100 потоков, они...

Как интегрировать друг с другом две формы одинаковые бронирования на двух разных сайтах?
Есть два разных сайта. Первый на Wordpress, второй нет. Нужно форму бронирования, которая имеется...

Как сделать БЕСПРОВОДНУЮ передачу звука по BT/WiFi ОДНОВРЕМЕННО на ДВЕ активные аудиосистемы в разных комнатах
Приветствую, друзья! Недавно возникла идея организовать хороший звук в квартире в разных...


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

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