IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Calcul parallel en Silverlight 4


Sujet :

Silverlight

  1. #1
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut Calcul parallel en Silverlight 4
    Salut tous le monde ,
    SVP y'a t-il moyen de faire du calcul parallel ?, j'ai beaucoup de controls a afficher par code (par boucle) et qui prennent beaucoup beaucoup de temps a s'afficher (environ 15 jusqu'a 20sec).
    merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Si c'est pour afficher des contrôles je dirais non vu qu'il n'y a qu'un seul thread qui peut jouer avec les contrôles.

    Tu affiches tous tes contrôles sur ta page en même temps ? Tu as pensé à faire un peu de virtualization ? Ou au moins cacher les contrôles qui ne sont pas dans la zone visible.

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    15 à 20 secondes pour afficher tes contrôles, cela me parait énorme.

    As-tu essayé la virtualisation, comme le suggère Skyounet ? Sinon, c'est l'affichage des contrôles qui est lent ou la récupération des données ?

  4. #4
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    ok , je vais chercher sur la virtualisation .
    maintenant je l'ai testé sur une autre machine et ça m'a pris 1min25sec () ,
    au fait je developpe une application SIG et je dois afficher des controls de type Bouton par code ( je dois les afficher tous (environ 5000elements)).
    question : peut-on appliquer la virtualisation sur tous les conteneurs ?
    PS : Thomas ton blog est vraiment riche , je trouve souvent des solutions sur to blog ?

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par bellak Voir le message
    Bouton par code ( je dois les afficher tous (environ 5000elements)).
    Mais ils sont pas tout affichés en même temps si ? Tu as essayé de cacher ceux qui ne sont pas affiché puis les afficher en temps voulu ?

    question : peut-on appliquer la virtualisation sur tous les conteneurs ?
    Si tu le développes, oui.

  6. #6
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Mais ils sont pas tout affichés en même temps si ? Tu as essayé de cacher ceux qui ne sont pas affiché puis les afficher en temps voulu ?
    si , je dois les afficher tous en meme temps .
    j'essaie d'appliquer la virtualisation sur une listBox mais ça retourne une erreur :
    La propriété Set 'System.Windows.Controls.VirtualizingStackPanel.IsVirtualizing' a levé une exception
    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <ListBox x:Name="ListLayer1"  BorderBrush="{x:Null}" VirtualizingStackPanel.IsVirtualizing="True" 
                                             >
                <ListBox.ItemTemplate>
                 <sdk:HierarchicalDataTemplate>
                  <StackPanel Orientation="Horizontal" >
                   <CheckBox 
                    x:Name="ckbVisibility" 
                                                        Tag="{Binding NAME}"
                    ToolTipService.ToolTip="Set the visibility of this Cell"/>
                   <HyperlinkButton 
                    x:Name="txtLabel"
                    Content="{Binding NAME, Mode=OneWay}"
                    Margin="4,0,10,0" />
                  </StackPanel>
                 </sdk:HierarchicalDataTemplate>
                </ListBox.ItemTemplate>
               </ListBox>

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Tu as 5000 boutons tous visibles en même temps ? Ils doivent pas être bien gros alors.

    La virtualization fonctionne seulement si certaines parties ne sont pas visible (comme dans une ListBox où tu ne vois que 10 éléments alors qu'il y en a peut-être 100 dedans).

  8. #8
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Tu as 5000 boutons tous visibles en même temps ? Ils doivent pas être bien gros alors.
    pour un SIG on peut dire que ça peux aller,
    donc je dois cherché une autre methode !!.
    et pour l'erreur t'as une idee ?, SVP .
    merci

  9. #9
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par bellak Voir le message
    pour un SIG on peut dire que ça peux aller,
    donc je dois cherché une autre methode !!.
    et pour l'erreur t'as une idee ?, SVP .
    merci
    Ben non y'a pas d'autres méthodes... Tu veux afficher 5000 contrôles en même temps et y'a pas 36 solutions. Ici la virtualization ne te saura d'aucune aide.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 121
    Par défaut
    Je sais pas si tu l'as déjà fait, mais tu pourrais faire ton propre bouton (une version plus light que la version de base) ce qui réduira surement le temps de chargement

  11. #11
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Une application SIG, c'est bien un Système d'information géographique ?

    Que dois tu faire avec ces 5000 controls ? Affichage seulement ou interaction ?

    Les 5000 controles sont-ils toujours visibles et changent t'ils souvent de place ?

  12. #12
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    Citation Envoyé par Samoteph Voir le message
    Une application SIG, c'est bien un Système d'information géographique ?

    Que dois tu faire avec ces 5000 controls ? Affichage seulement ou interaction ?

    Les 5000 controles sont-ils toujours visibles et changent t'ils souvent de place ?
    mes controls sont de type bouton je les utilise pas pour seulement un affichage.
    donc mes controls doivent etre toujours visibles et ne changent pas de place .

  13. #13
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Tu pourrais, plutot que de gerer des controles lents à dessiner, créer un WriteableBitmap sur lequels tu dessines, une seule fois, tes 5000 boutons (dessiner pas ajouter ). Pour gérer les clicks il suffit lorsque tu cliques sur le Bitmap de faire referer le point de la souris à un tableau de rectangle qui correspond aux positions des boutons. Ca devrait accélerer énormement ton application.

  14. #14
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    Salut ,
    pardon pour ce retard
    Citation Envoyé par Samoteph Voir le message
    Tu pourrais, plutot que de gerer des controles lents à dessiner, créer un WriteableBitmap sur lequels tu dessines, une seule fois, tes 5000 boutons (dessiner pas ajouter ). Pour gérer les clicks il suffit lorsque tu cliques sur le Bitmap de faire referer le point de la souris à un tableau de rectangle qui correspond aux positions des boutons. Ca devrait accélerer énormement ton application.
    dans un SIG je pense qu'on peut pas appliquer cette methode , non !??

  15. #15
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Peux-tu préciser ta définition d'un SIG et approfondir les raisons pour les quelles cette méthode ne peut pas fonctionner.

  16. #16
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    un SIG c'est bien un systeme d'informations geographiques ,
    dans un SIG il y a des zoom in et des zoom out donc un objet n'est pas fixe dans des pixels bien definis ce qui me permet pas d'utiliser la methode dont tu m'as proposé.

  17. #17
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    C'est pour cela que je t'avais demandé

    Les 5000 controles sont-ils toujours visibles et changent t'ils souvent de place ?

  18. #18
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    ah oui , j'ai dis qu'ils ne changent pas de place par rapport au SIG (par leur longitude et latitude).

    pour l'erreur généré sur la virtualisation des items ListBox et Combobox quelqu'un a une idee sur le probleme ?

    une autre petite question : quel est l'objet le plus leger dans silverlight ? (pour que je puisse remplacer les boutons sachant je les modifie pour qu'ils prennent la forme d'une fleche avec un Rotate et un ToolTip).

    merci .

  19. #19
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par bellak Voir le message
    pour l'erreur généré sur la virtualisation des items ListBox et Combobox quelqu'un a une idee sur le probleme ?
    On ne peut pas activer la virtualization comme ça (d'ailleurs on t'a dit qu'elle était activé par défaut). Me semble que ça lance un NotImplementedException.

    une autre petite question : quel est l'objet le plus leger dans silverlight ? (pour que je puisse remplacer les boutons sachant je les modifie pour qu'ils prennent la forme d'une fleche avec un Rotate et un ToolTip).
    Peut-être un Path, mais je suis pas sûr.

  20. #20
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Tu peux faire du parallele en Silverlight en utilisant F#

Discussions similaires

  1. Une Task Parallel Library pour Silverlight & Windows Phone 7
    Par DavidCatuhe dans le forum Silverlight
    Réponses: 2
    Dernier message: 16/05/2011, 21h34
  2. debutant en calcul parallele sous matlab
    Par ivanleterrible dans le forum MATLAB
    Réponses: 1
    Dernier message: 30/06/2010, 16h42
  3. calcul parallele en python
    Par smstry dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 04/06/2010, 08h26
  4. calcul parallele avec python ?
    Par KINENVEU dans le forum Général Python
    Réponses: 5
    Dernier message: 10/10/2007, 22h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo