|
|
|
|
|
- Cas particulier : Arrêt d'un thread contenant la fonction SocketAttendConnexion
ThreadArrête (Fonction) En anglais : ThreadStop
Avertissement
L'utilisation de cette fonction est fortement déconseillée car elle arrête violemment le thread en pleine activité. Elle peut provoquer des problèmes graves (écriture de fichier incomplète, perte de mémoire, section critique non libérée, ...). Il est conseillé d'utiliser les fonctions ThreadDemandeArrêt et ThreadArrêtDemandé.
Arrête un thread secondaire. Rappel : Un thread est un processus lancé en parallèle de l'application en cours ("thread" principal). Il est par exemple possible de lancer l'exécution d'une tâche en traitement de fond (sauvegarde, ...).
Syntaxe
<Résultat> = ThreadArrête(<Nom du thread> [, <Durée maximale>])
<Résultat> : Booléen - Vrai si le thread s'est arrêté ou si le thread n'existe pas,
- Faux si le thread est bloqué
<Nom du thread> : Chaîne de caractères Nom du thread à arrêter. Ce nom est donné lors de l'exécution du thread (fonction ThreadExécute). Cas particuliers : - Si ce paramètre correspond à une chaîne vide (""), le thread en cours est arrêté. Si le thread en cours est le thread principal, la fonction ThreadArrête est équivalente à la fonction FinProgramme.
Seul ce fonctionnement est autorisé. La fonction ThreadArrête peut être utilisée uniquement sur le thread courant. - Si le nom du thread n'existe pas, la fonction ThreadArrête ne fait rien et renvoie Vrai.
- Si le nom du thread est un thread fils ou frère, la fonction ThreadArrête attend que la fonction du WLangage en cours (par exemple HLitPremier) soit terminée. Dans ce cas, la fonction ThreadArrête est bloquante.
- Si ce paramètre correspond à la constante ThreadPrincipal, le thread principal est arrêté.
- Dans les autres cas, une erreur du WLangage est générée.
<Durée maximale> : Entier optionnel Nombre de centièmes de seconde d'attente maximale. - Si à la fin de la durée spécifiée, le thread n'est pas arrêté, <Résultat> est égal à Faux.
- Si ce paramètre n'est pas spécifié ou si la constante Infinie est utilisée, l'attente est infinie.
Ce paramètre peut correspondre à : - un entier correspondant au nombre de centièmes de seconde,
- une variable de type Durée,
- l'indication directe de la durée (par exemple 1 s ou 10 ms).
Remarques Cas particulier : Arrêt d'un thread contenant la fonction SocketAttendConnexion Pour que le thread soit correctement arrêté avec la fonction ThreadArrête, il est nécessaire de mettre la fonction bloquante SocketAttendConnexion dans une boucle : Durée = 30 BOUCLE SocketAttendConnexion("MaSocket", Durée) FIN
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|