Dans mon application Silverlight 4.0, à un moment donné, après que l'utilisateur appuie sur un bouton, je dois créer quelques objets d'interface utilisateur qui prennent un certain temps (5 à 10 secondes). Pendant ce temps, l'interface utilisateur se fige bien sûr. J'ai décidé de mettre la création de ces objets dans un arrière-plan afin que l'interface utilisateur puisse au moins afficher la barre de progression.Création de UIElements hors thread Ui, Silverlight
Mais cette solution ne fonctionne pas. Pour créer un objet UI, vous devez être dans le thread UI. Si je mets la création de ces objets à l'intérieur Dispatcher.BeginInvoke()
encore une fois mon interface utilisateur se fige. Dans la plupart des cas, sans même afficher la barre de progression. Y a-t-il un moyen de contourner ceci? Puis-je afficher la barre de progression pendant que Silverlight crée des objets d'interface utilisateur en arrière-plan?
Oui, mais pour afficher myMsg, vous devez accéder à UIThread, et si les objets sont créés sur le même thread Ui n'a pas le temps de mettre à jour – grabah
Ce que j'essayais de dire ici est à la place de la barre de progression. la mise à jour est en cours. Offcourse vous devez être dans l'UIThread pour le faire. BTW, avez-vous essayé cela? – Vivek