Модераторы: gambit, Kefir, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пауза в расчетах без паузы в отрисовке Gui 
:(
    Опции темы
dAlex
Дата 25.5.2011, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



а нужно все-таки просто вызов без Dispatcher.Invoke или с ним?
сейчас так
Код

//в Core
protected virtual void OnPropertyChanged(string propertyName)
       {
            if (PropertyChanged == null) return;
            Application.Current.Dispatcher.BeginInvoke(PropertyChanged, this, new PropertyChangedEventArgs(propertyName));
       }  

Код

//в Window
backgroundWorker = new System.ComponentModel.BackgroundWorker();
backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker_DoWork);
backgroundWorker.RunWorkerAsync(trade);



Код


        private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {          
            Trade arg = (Trade)e.Argument;   
            Core.CheckNewStrike(arg);            
            
        }


в итоге снова ругань на 
Цитата

This type of CollectionView does not support changes to its SourceCollection from a thread different from the Dispatcher thread.

--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
-Mikle-
Дата 25.5.2011, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Цитата(dAlex @  25.5.2011,  13:39 Найти цитируемый пост)
сейчас так

Да, именно так я и предлогал.

Цитата(dAlex @  25.5.2011,  13:39 Найти цитируемый пост)
в итоге снова ругань 

Значит есть еще где-то места, в которых из метода CheckNewStrike идет обращение к GUI, потому что PropertyChanged, на которых сидит биндинг, стабильно вызывается в потоке GUI. Посмотри внимательно еще раз.



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
dAlex
Дата 25.5.2011, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



а это может быть связано с тем, что backgroundWorker вызывается из таймера? первая ругань происходит в строчке, где меняется Cc_collection, а это точно свойство

upd: 
в строке типа такой
Код

Summator[Cnum].a3 = ...

всё в порядке, а если делать
Код

Cc_collection.Add(..)

как раз и вылезает ексепшн. Может, там нужен не PropertyChanged, а именно CollectionChanged? раз Add

Это сообщение отредактировал(а) dAlex - 25.5.2011, 13:25
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
-Mikle-
Дата 25.5.2011, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Если строчка Cc_collection.Add(..) имеется где-нить в иерархии вызовов методов начиная с метода CheckNewStrike, то да, проблема в этом. Если таких строчек не много, то передайте только эту одну строчку в синхронное выполнение GUI - Dispatcher.Invoke(......Cc_collection.Add(..) .....)


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.