Фон
Это приложение Compact Framework 3.5 Forms.В процессе отображения формы статические (это означает, что элементы управления, размещенные в форме как есть ), заполняются в потоке пользовательского интерфейса, а те, которые могут потребовать загрузки данных, заполняются в отдельном потоке.пользовательский интерфейс один.
Я использую Control.Invoke
для синхронизации заполнения элементов управления с данными в потоке пользовательского интерфейса.
Примечание: пользовательский интерфейс не застревает, и он работаеткак и ожидалось.
Проблема
Элементы управления, такие как ListBox , даже если у них есть элементы, они не отображаются в пользовательском интерфейсе.
Всякий раз, когда элемент добавляется, код вызывает метод ListBox.Update
, чтобы перерисовать его.
Не дадите ли вы мне подсказку о том, что происходит?
ПРИМЕЧАНИЕ : я мог бы вставить сюда некоторый код, но я нахожу это бесполезным, потому что речь идет только о запуске потока путем создания единицы (new Thread(...).Start()
) и во время выполнения этого потока,Я вызываю какой-то метод Invoke
.
Заранее благодарю за ваши предложения и время.
ОБНОВЛЕНИЕ Я получу его, если я создаю элемент управлениякак ListBox в синхронизированном с UI действии потока, используя Control.Invoke
.В любом случае, мне все еще нужно решить это, когда элемент управления создается с помощью дизайнера, потому что таким образом проще разместить элементы управления.Благодарю.