WPF - обновление Listview очень спорадическое - PullRequest
3 голосов
/ 23 августа 2011

У меня есть программа WPF с двумя списками, которые отображают информацию из двух разных наблюдаемых коллекций.Эти наблюдаемые коллекции обновляются по таймеру, который срабатывает каждую секунду.

По какой-то причине эти списки не обновляются при обновлении сбора данных ... они будут обновляться время от времени, но нет гарантии, что он когда-либо будетбывает.Я могу запустить всю программу за 10 минут и ничего не отображать ... В окне вывода также нет ошибок привязки данных.На самом деле, если я заполняю коллекцию во время запуска, чтобы проверить привязку, все это отображается без проблем.Только когда я динамически добавляю элементы во время выполнения программы, возникает проблема.

При попытке отладки невозможно следить за программой, потому что по какой-то причине у меня есть целый груз работникапотоки, которые я никогда не определял и не просил:

http://i.imgur.com/wq5ND.png

Я думаю, что эти дополнительные потоки могут быть частью проблемы.Есть ли простой способ в C # определить функцию как потокобезопасную, как синхронизированное ключевое слово в Java?

РЕДАКТИРОВАТЬ:

JFifoErrorCollection.Add(errorData); 
JFifoList.Items.Refresh(); 
break; 

РЕДАКТИРОВАТЬ # 2: я решил эту проблему .. Я былиспользуя System.Threading.Timer, который не работал в потоке пользовательского интерфейса.Изменено на System.Windows.Forms.Timer и теперь работает отлично.

1 Ответ

1 голос
/ 29 ноября 2011

Использовать встроенный WPF DispatcherTimer .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...