Question

Winform sur CF est un peu lourd, l'initialisation de nombreux handles Windows prend beaucoup de temps et de mémoire.Un autre problème est le manque de double tampon intégré et le manque de contrôle que vous avez sur le rendu de l'interface utilisateur, ce qui signifie que lors d'opérations gourmandes en processeur, l'interface utilisateur peut laisser l'utilisateur regarder un écran à moitié rendu.Bon!

Pour atténuer ce problème, je chercherais un cadre de contrôle léger, y en a-t-il déjà un ou faudrait-il faire un homebrew ?

Par légèreté, j'entends une bibliothèque de contrôles qui permet de contrôler entièrement la peinture des contrôles et n'utilise pas de nombreuses poignées de fenêtres coûteuses.

NOTE:S'il vous plaît, ne suggérez pas que je travaille trop sur le fil de discussion de l'interface utilisateur.C'est pas l'affaire.

Était-ce utile?

La solution

J'ai rencontré ceci l'autre jour, ce qui pourrait être utile au moins comme point de départ : Fuild - Commandes tactiles Windows Mobile .NET.L'apparence et la convivialité sont agréables, mais il n'y a pas de support au moment de la conception.Je ne sais pas grand chose sur l'empreinte mémoire, etc. mais tout est en double tampon et les performances semblent plutôt bonnes.

Autres conseils

Ok, juste une idée qui me vient à l'esprit...

Que diriez-vous de créer un objet de synchronisation, par ex.section critique ou verrou unique, dans votre application, partagé entre votre travailleur et les threads de l'interface graphique.Remplacez la peinture.Lorsque vous commencez à peindre, bloquez tous les autres threads, de sorte que vous ne vous retrouviez pas avec un écran à moitié peint pendant qu'ils monopolisent le processeur.

(cela suppose bien sûr que présenter une jolie image à votre utilisateur est la chose la plus importante dont vous avez besoin ;) )

un peu lent et vous ne pouvez pas contrôler l'événement paint, donc lors d'opérations gourmandes en processeur, l'interface utilisateur peut laisser l'utilisateur regarder un écran à moitié rendu.

C'est généralement une mauvaise idée d'effectuer des tâches coûteuses sur le fil de l'interface utilisateur.Pour que votre interface utilisateur reste réactive, ces tâches doivent être effectuées par un fil de travail

En fait, vous pouvez remplacer l'événement paint.

Et l’idée est que vous déchargez les opérations de longue durée vers un thread séparé.Ce n'est vraiment pas différent de tout autre framework événementiel. Rien qui repose sur la gestion d'un événement Paint va y être sensible.

De plus, il n'existe aucun système qui vous permet de déterminer quand l'événement paint est déclenché.Ce type d'événement est généralement déclenché par la couche du gestionnaire de fenêtres, qui se trouve en dehors de l'application (ou même du framework).Vous pouvez gérer l'événement vous-même et ne rien faire de temps en temps, mais je ne le recommanderais pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top