none
Lenteurs suite à plusieurs appels à Task.Factory.StartNew RRS feed

  • Discussion générale

  • Bonjour,

    Dans une application WPF, développée suivant les principes de MVVM, lors d'un double clic sur une ligne d'une grid affichant une liste d'objets, une instance du ViewModel et de la View correspondant sont créés. Une méthode LoadDatas() de ce ViewModel est appelée pour charger les données. On peut ouvrir plusieurs instances de cette View pour différents objets de la liste.

    Si dans ma méthode LoadDatas(), les traitements sont faits dans le thread principal, l'affichage est instantané que j'affiche 1 ou 30 Views en quelques secondes, c'est très fluide.

    Pour anticiper la mise en production et le fait que la base soit nettement plus sollicitée, j'ai voulu mettre ces traitements sous cette forme

    public void LoadDatas()
    {
        Task.Factory.StartNew(() =>
             {
                 mesDatas1 = Load1();
    
                 mesDatas2 = Load2();
             }
        });
    }

    Curieusement, le traitement est plus long (> 1s) et ce qui l'est encore plus, c'est qu'il devient de plus en plus long plus j'ouvre de View. A la 4ème, on arrive à 10 secondes.

    J'ai regardé, l'action définie dans le StartNew est toujours aussi rapide, mais ce qui prend du temps, c'est le lancement de celle-ci.

    Quelqu'un saurait m'expliquer pourquoi?

    Merci

    • Type modifié Aurel Bera mercredi 27 février 2013 09:58 Discussion
    mercredi 20 février 2013 17:22

Toutes les réponses