begin process at 2012 02 08 22:35:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Multimédia

 > 

WPF

 > 

interrompre l'exécution d'un thread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

interrompre l'exécution d'un thread

vendredi 15 février 2008 à 18:54:32 | interrompre l'exécution d'un thread

mathmax

Bonjour,

Je travaille avec un contrôle WPF dont je souhaite modifier ses propriétés dans un autre thread. Je voudrais pouvoir interrompre l'exécution du thread depuis un thread extérieur, à n'importe quel moment, instantanément (l'équivalent de la méthode Thread.Abort()).

- La classe BackgroundWorker ne me conviens pas car l'appelle de la méthode CancelAsync() n'interrompt pas directement thread associé, mais lance simplement un appel pour dire que l'on veut l'arrêter. Il faut alors vérifier régulièrement dans la méthode appelée par BackgroundWorker.BeginInvoke() si un appel d'annulation a été lancé pour pouvoir réellement stopper l'exécution du thread.

- Une autre solution serait d'utiliser le Dispatcher de mon contrôle wpf. Mais celui-ci s'exécute dans le thread principal et interrompre le thread associé reviendrait à arrêter l'application toute entière...

Auriez-vous une autre solution à me proposer ?

Merci d'avance pour vos suggestions,


Mathmax

****************************************

vendredi 15 février 2008 à 21:51:57 | Re : interrompre l'exécution d'un thread

LUDINSKI

Salut Mathmax,

Je ne comprend pas ton problème... pourquoi ne pas utiliser l'objet System.Threading.Thread ??

Tu peux déclarer son instance comme static de manière à pouvoir appeler sa méthode Abord depuis n'importe où (même dans un  thread différent)

private Thread _cancelThread;

public Form1()
{
    _cancelThread = new Thread( new ThreadStart( ThreadTask ) );
    _cancelThread.Start();

    Thread.Sleep( 1000 );
    _cancelThread.Abort();
}

private void ThreadTask()
{
    try
    {
        Thread.Sleep( 5000 );

        // N'arrivera jamais ici !!
    }
    catch( ThreadAbortException )
    {
        return;
    }
}
samedi 16 février 2008 à 02:22:12 | Re : interrompre l'exécution d'un thread

mathmax

Je ne peux pas faire cela car je dois modifier les propriétés d'un composant WPF dans le thread qui doit être interrompu. On n'est pas autorisé à accedere aux propriétés d'un contrôle WPF depuis un thread qui n'est pas le thread principal. Il semble qu'il faille pour cela invoquer une méthode depuis la propriété Dispatcher du controle en question. Cette méthode s'éxécute alors dans le thread principal et l'on peut ainsi modifier les propriétés du contrôle. Le problème est qu'on ne peut alors pas interrompre le déroulement de cette méthode car elle s'exécute dans le thread principal. Je pensais qu'il était possible de travailler avec un BackgroundWorker et que celui permettait justement de modifier le control WPF depuis un autre thread. En fait ça n'est même pas le cas... Je cherche donc une autre solution à ce problème.


Mathmax

****************************************

jeudi 1 octobre 2009 à 09:17:31 | Re : interrompre l'exécution d'un thread

izor


http://msdn.microsoft.com/en-us/library/ms741870.aspx /o/


Cette discussion est classée dans : contrôle, thread, méthode, exécution, interrompre


Répondre à ce message

Sujets en rapport avec ce message

Exécution sous Thread spécifique [ par thegitch ] Bonjour à tous,Comment, depuis un thread B, exécuter une méthode sous un thread A ? Je m'explique.Le thread A est le thread principal, le main, le thr Fin d'un thread en .NET [ par Frederyck ] Salut à toutes et à tous,alors voici mon soucis, dans une application que je réalise en C#, j'utilise dans un de mes objets (que j'appelerai ici objB) Problème de Thread [ par Bidou ] Bonjour,Bon je suis pas encore tout à fait au point avec les Threads. La question est certainement pas très compliquée.J'ai une forme qui contient un Ajout d'un contrôle depuis un thread en utilisant Invoke... [ par gazous ] Bonjour,Je vous contacte car j'ai vu que vous étiez assez calé en dll.Mon problème :J'ai un thread qui essaye d'ajouter un contrôle dans un panel char Thread & Exception [ par Bidou ] Bonjour,En fait j'ai une méthode qui démarre un nouveau thread (une méthode d'un autre object) et dans ce nouveau thread, il est possible qu'il se pro Thread [ par Equinox84 ] Bonjour : Est ce qu'il est possible de lancer une méthode via un thread différent que celui dans lequel on est ? Si oui comment ? --> mon problème: Thread [ par Bidou ] Bonjour,Petite question pour les spécialistes des Threads :j'utilise un object comme ceci:X x = new X();x.DoInThread();X est une classe qui possède do Thread Viewer [ par gama71 ] Bonjour, je voudrais savoir si quelquun connais un outils qui me permettrait de visualiser les threads qui torune en mémoire.J'ai une application qui Webservice utiliser la méthode asynchrone [ par virgul ] Bonjour,Voila je suis un peu embêter car quelquechose m'échappe dans l'appel de mon webservice en méthode asynchrone...En effet quand je lie mon Webse Redimensionner une image sur un contrôle [ par MasterShadows ] Bonsoir à tous et à toutes,Je voudrais redimensionner une image que j'applique sur un bouton, sachant que l'image n'est pas en backgroundParce que en


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,092 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales