25 / 41 / 14
Регистрация: 27.03.2014
Сообщений: 754
1

Непонятные тормоза с потоками

07.10.2014, 21:16. Показов 892. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть кнопка которая загружает из интернета определенную информацию
C#
1
2
3
4
5
6
private async void updateNowButton_Click(object sender, RoutedEventArgs e)
        {
            ProgressBarUpdateTop.Visibility = Visibility.Visible;
            await getMethod("all");
            ProgressBarUpdateTop.Visibility = Visibility.Collapsed;
        }
Так вот, не работает она как хотелось бы... Информации много, кнопка подвисает в зажатом состоянии секунд 10, а потом отвисает после получения всех инфы, и таким образом ProgressBarUpdateTop даже не успевает появится...
Непойму в чем проблема, await поидее должен освободить поток пока getMethod не выполнится...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2014, 21:16
Ответы с готовыми решениями:

Непонятные тормоза
Почему то стал ужасно тормозить ноут, проверил его Хитманом, вроде нет ничего. Может Вы глянете,...

Непонятные тормоза
Привет. Есть компьютер, проц AMD Athlon 4800+ два ядра по 2,5 ггц, 2 гб ддр2, видеокарта radeon hd...

Тормоза и непонятные SDBL
Текущая конфигурация такая: MS SQL 2012 1С:Предприятие 8.3 сперва стояла 8.3.10.2667 - потом...

Acer Aspire V3 551G [Тормоза и непонятные вещи]
Друзья , нуждаюсь в Вашей помощи! Такая история , на моем ноутбуке (Acer Aspire V-3 551G) стояла...

4
106 / 106 / 35
Регистрация: 13.12.2010
Сообщений: 407
08.10.2014, 16:12 2
вы блочите UI-поток скорее всего.
пустите в Task.Run
0
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
10.10.2014, 08:49 3
jenokizm, Он не освобождает, он ждет возврата из метода.
В вашем данном конкретном случае, если getMethod выполняется на том же треде, что и вызов, await ничего не изменит.
0
444 / 348 / 32
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
13.10.2014, 01:45 4
page.Dispatcher.RunAsync
0
25 / 41 / 14
Регистрация: 27.03.2014
Сообщений: 754
15.10.2014, 19:27  [ТС] 5
Попробовал так
C#
1
            await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => getMethod("all"));
не канает(

Добавлено через 18 минут
Получилось вот так!
C#
1
2
3
4
            await Task.Run(async () =>
    {
            await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => getMethod("all"));
    });
ну и понакручено же
0
15.10.2014, 19:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2014, 19:27
Помогаю со студенческими работами здесь

Непонятные тормоза в играх; прочистка, замена комплектующих и ПО не помогли
Без причины тормозят игры. Из установленных на компьютере тормозят Dota 2, Batman: Arkham Asylum. В...

Word automation + Windows server 2008 R2 = тормоза(очень сильные тормоза)
Здравствуйте! Есть код, написанный правда на делфи, который экспортирует содержимое ТХТ файла в...

Тормоза с XP
Недавно удалил Avast и поставил лицензионный Доктор Веб. Начались проблемы - открытие любых файлов...

Тормоза в браузере
Всем привет! Почему-то когда допустим сижу в скайпе, открыта одна вкладка в хроме, другая в вк....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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