Bonjour,
J'ai une question toute simple: comment faire pour que toutes les procédures d'une unité soient exécutées dans un thread?
En effet, si j'ai bien compris, seule la procédure "execute" d'un thread permet de lancer un traitement. Or, j'ai une unité disposant de plusieurs procédures différentes. Donc en toute logique, il me faudrait plusieur 'execute", mais comment faire?
J'avoue que je ne suis pas motivé à utiliser seulement execute puis conditionner mes différents appels aux procédures...
Pour détailler un peu plus, je suis actuellement sur un projet composé de la manière suivante:
- Une unité principale, avec ma fiche de présentation
- Une unité "Browser", disposant de commandes de navigation (formatage des URL, test du contenu récupéré, puis appel des fonctions de traitement du contenu situé sur une autre unité
- Une unité de traitement
- Une unité graphique etc...
Bref, pour simplifier, l'application fonctionne comme ça:
Le truc, c'est que l'unité de récupération des données prends pas mal de temps à l'exécution. Du coup, si à partir de ma fiche principale, j'appelle la fiche de configuration, ça met un certain temps à s'exécuter.
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
19
20
21
22
23
24
25 +------------------+ | Fiche principale | +------------------+ | Sur événement (bouton, menu), appel des fonction de récupération de données | | +----------------+ +---------------+ | Unité browser | (utilise Indy) | Configuration | +----------------+ +---------------+ | Traitement des données | +---------------------+ | Unité de traitement | (Récupération de données) +---------------------+ | +---------------------+ | Unité de sauvegarde | (Enregistrement dans des TRecords, svg sur disque dur) +---------------------+ | +----------------------+ | Unité pour affichage | (Mise à jour de la fiche principale) +----------------------+
Je voudrait donc exécuter les opérations de récupération de données dans un thread à part.
Cela ne devrait - à priori - ne pas poser trop de problèmes vu que l'application est conçue sur le modèle d'application n-tiers, donc les données ne transites que d'une couche à l'autre.
Par contre, en regardant la mise en oeuvre des threads dans la FAQ, cela me semble un peu compliqué...
Je voudrais donc savoir comment faire au plus simple, à savoir:
Mon unité browser dispose de plusieur procédures:
- Navigation_Page_1
- Navigation_Page_2
- Navigation_Page_3
- ...
Je voudrais que l'appel à quelque procédure que ce soit de cette fiche, celle-ci s'exécute dans un thread différent de l'application principale (donc soit toutes les procédures dans un seul thread (les procédures ne sont pas appelée en même temps), soit dans des threads différents.)
Merci
Partager