Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
 Аватар для umnick_kh
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527

Выполнить метод в отдельном потоке. Форма виснет

20.01.2013, 20:32. Показов 1494. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, вызываю метод так:

C#
1
2
3
4
5
6
7
8
9
10
 private void button1_Click_1(object sender, RoutedEventArgs e)
        {
            new Thread(delegate()
            {
                this.Dispatcher.BeginInvoke((Action)(() =>
                    {
                        TrackerManager.SearchOnTrackers();
                    }));
            }).Start();
        }
В самом методе делаю так:
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
public static void SearchOnTrackers()
        {
                Common.Main.treeView1.Dispatcher.BeginInvoke((Action)(() =>
            {
                Common.Main.treeView1.Items.Clear();
                for (int i = 0; i < trackers.Count; i++)
                {
                    results = trackers[i].DoSearch(Common.Main.textBox1.Text);
                    TreeViewItem item = new TreeViewItem();
                    item.Foreground = Common.Main.treeView1.Foreground;
                    item.Header = trackers[i].Name + " (" + trackers[i].Domen + ")" + " : " + results.Count;
                    for (int j = 0; j < results.Count; j++)
                    {
                        TreeViewItem res = new TreeViewItem();
                        res.MouseDoubleClick += Common.Main.TreeViewItem_MouseDoubleClick;
                        res.Header = results[j].Link;
                        res.ToolTip = results[j].Name;
                        item.Items.Add(res);
                    }
                    
                    Common.Main.treeView1.Items.Add(item);
                    Common.Main.treeView1.UpdateLayout();
                    results.Clear();
 
                }
            }));
        }
Но форма все равно виснет на время выполнения метода, объясните, что я делаю не так? Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2013, 20:32
Ответы с готовыми решениями:

Выполнить код в отдельном потоке
Доброго времени суток уважаемые! Помогите пожалуйста разобраться с основами многопоточности. Предположим у нас есть класс, class1(); ,...

Запустить метод в отдельном потоке
всем привет!) как запустить данный код в отдельном потоке, чтобы не зависала форма? ManagementObjectSearcher searcher = new...

Как запустить метод в отдельном потоке?
есть метод string s = mac.termt(m, m.GetLength(0)).ToString(); он очень долго весит при обработке данных из за этого винда считает что...

3
 Аватар для umnick_kh
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527
26.01.2013, 03:41  [ТС]
up up up
0
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
26.01.2013, 14:24
Цитата Сообщение от umnick_kh Посмотреть сообщение
this.Dispatcher.BeginInvoke
Эта строчка означает что запустить в потоке окна, а значит никакого отдельного потока у вас нет. Если у вас в методе интенсивно будут использоваться визуальные компоненты окна то никакого эффекта от отдельного потока вы не получите
1
 Аватар для umnick_kh
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527
27.01.2013, 14:33  [ТС]
Башир, спасибо за наводку. Решено. Тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2013, 14:33
Помогаю со студенческими работами здесь

Нужно чтоб метод Ping выполнялся в отдельном потоке
Здравствуйте! Столкнулся с проблемой в многопоточности. Пишу прогу, мне нужно чтоб метод Ping выполнялся в отдельном потоке. Сам метод: ...

ProgressBar в отдельном потоке
Кинул на форму бутонку прогрессБар и тот элемент с не выговариваемым названием для осуществления операций в отдельном потоке, по задумке...

Окно в отдельном потоке
Привет, вопрос заключается в том как поступить. У меня есть редактор карт для своего приложения. Он должен создавать Grid определенных...

Таймер не запускается в отдельном потоке
У меня есть поток, в котором в при определенных условиях должен запустится таймер, но он почему то не запускается. Вот упрощенный...

Работа ProgressBar в отдельном потоке
Привет. Подскажите, как заполнять и обновлять progressBar в отдельном потоке в процессе вычислений? У меня вычисления происходят в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru