Compact Framework - Легкий графический фреймворк?[закрыто]

StackOverflow https://stackoverflow.com/questions/33222

Вопрос

Winform на CF немного тяжеловат, инициализация множества дескрипторов Windows требует серьезного времени и памяти.Другая проблема заключается в отсутствии встроенной двойной буферизации и отсутствии контроля над рендерингом пользовательского интерфейса, что означает, что во время интенсивных операций с процессором пользовательский интерфейс может заставить пользователя смотреть на половину отрисованного экрана.Мило!

Чтобы решить эту проблему, я бы искал облегченную систему управления, есть ли она уже, или придется создавать ее самостоятельно?

Под облегченной я подразумеваю библиотеку элементов управления, которая позволяет полностью контролировать рисование элементов управления и не использует много дорогостоящих дескрипторов Windows.

ПРИМЕЧАНИЕ:Пожалуйста, не предполагайте, что я слишком много работаю в потоке пользовательского интерфейса.Это нет по делу.

Это было полезно?

Решение

Я наткнулся на это на днях, что может быть полезно, по крайней мере, в качестве отправной точки: Fuild - Сенсорные элементы управления Windows Mobile .NET.Внешний вид приятный, но нет поддержки во время разработки.Я не слишком много знаю о занимаемой памяти и т.д., но все с двойной буферизацией, и производительность кажется довольно хорошей.

Другие советы

Ладно, просто идея пришла мне в голову...

Как насчет создания объекта синхронизации, напримеркритический раздел или отдельная блокировка в вашем приложении, разделяемая между вашим рабочим потоком и потоками gui.Замените краску.Когда вы начнете рисовать, заблокируйте все остальные потоки, чтобы у вас не остался наполовину закрашенный экран, пока они загружают процессор.

(это, конечно, предполагает, что представление пользователю красивой картинки - это самое важное, что вам нужно ;))

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

Как правило, выполнять дорогостоящие задачи в потоке пользовательского интерфейса - плохая идея.Чтобы ваш пользовательский интерфейс оставался отзывчивым, эти задачи должны выполняться рабочий поток

На самом деле, вы можете переопределить событие paint.

И идея заключается в том, что вы выгружаете длительные операции в отдельный поток.На самом деле это ничем не отличается от любого другого событийно-ориентированного фреймворка. Что Угодно то, что зависит от обработки события рисования, будет восприимчиво к этому.

Кроме того, не существует системы, которая позволяла бы вам определять, когда вызывается событие paint.Такого рода события обычно вызываются уровнем оконного менеджера, который находится за пределами приложения (или даже фреймворка).Вы можете справиться с этим событием самостоятельно и просто некоторое время не работать, но я бы не рекомендовал этого делать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top