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

Dotnet Discussion :

problème de Task C#


Sujet :

Dotnet

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 132
    Points : 59
    Points
    59
    Par défaut problème de Task C#
    Bonjour,

    J'essai d'exécuter une tâche en arrière plan en utilisant task.continuewith()

    Mon code est le suivant:
    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
    Task asyn =
                Task.Factory.StartNew(
                    () =>
                    {
                      //je fais rien
     
                    });
               asyn.ContinueWith(
                 (task) =>
                 {
                     RefreshMainForm(state);
                 },
                 CancellationToken.None,
                 TaskContinuationOptions.None,
                 TaskScheduler.FromCurrentSynchronizationContext());
    J'ai un plantage de programme au niveau de la dernière ligne TaskSCheduler.

    Pourriez-vous m'aider à résoudre ce problème svp?

    Merci!

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Citation Envoyé par samuel44 Voir le message
    J'ai un plantage de programme au niveau de la dernière ligne TaskSCheduler.
    Si tu veux qu'on t'aide, on a besoin du maximum d'information En l'occurence, on sait où ça plante, mais pas le pourquoi. Peux-tu nous transmettre le message d'erreur ? Merci !
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Le programme lance une exception:
    An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll

    Additional information: Le SynchronizationContext actuel ne peut pas être utilisé en tant que TaskScheduler.

    sachant que la tâche refreshMain est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Invoke(this.MainFormRefresh, new object[] { this, new EventArgs() });
    Merci pour la réponse

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    Par défaut
    Que vaut System.Threading.SynchronizationContext.Current ?

    Si c'est null, c'est normal. Et c'est certainement du au fait que tu n'es pas dans le thread graphique quand tu lances cette tâche.

    Maintenant, as-tu besoin de spécifier le contexte dans lequel tu souhaites que la tâche travail ? Je ne pense pas.

    En effet, tu utilises le patron d'invocation afin de mettre à jour ton IHM. Il est donc inutile de préciser le contexte dans ce cas particulier.

    Si tu précises le contexte d'exécution, tu n'as pas besoin d'utiliser le patron d'invocation.

    Il suffit de faire l'un, ou l'autre. Mais là, tu essaies de faire les deux !

    Souvent la méthode utilisée est l'utilisation du patron d'invocation, c'est à la méthode appelée de faire en sorte que les accès aux éléments graphiques se font de la bonne manière. Avec le contexte, c'est à l'appelant de prendre en charge cela.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup pour la réponse!

    C'est parfait!

    mon soucis, quand j'enlève le patron d'invocation, un dataGridview de mon IHM se met à jour progressivement (affichage ligne par ligne) et pas d'un seul coup. Mais, l'avantage , l'IHM ne gèle plus.

    Es se que vous savez d'ou ça vient?

    Merci!

Discussions similaires

  1. Problème de tasks: scanne seulement les .xml
    Par Helifyl dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/08/2009, 13h16
  2. [SSIS][2k5]Problème Execute SQL Task
    Par gassisprog dans le forum SSIS
    Réponses: 2
    Dernier message: 28/05/2008, 14h59
  3. problème avec java task
    Par alex'l dans le forum ANT
    Réponses: 1
    Dernier message: 20/03/2007, 10h04
  4. SSIS : FTP Task : problème!
    Par kaboume dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/08/2006, 15h32
  5. Réponses: 4
    Dernier message: 14/01/2005, 19h41

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