Envoyer des paramètres à un thread

Résolu
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 3 févr. 2005 à 11:35
-Eric40- Messages postés 5 Date d'inscription vendredi 29 septembre 2023 Statut Membre Dernière intervention 1 novembre 2023 - 1 nov. 2023 à 16:33
J'aurai voulu savoir s'il y avait moyen d'envoyer un paramètre dans un nouveau thread !
Parce que dès que je créé un thread : je pose


T =
new Thread(
new ThreadStart(Fonction));

Et je voulais savoir s'il y a possibilité d'envoyer des paramètres à "fonction".
G essayer en inscrivant : T = new Thread(new ThreadStart(Fonction(paramètre));
Mais ca marche pas, Bouh !!!

Voila, merci d'avance pour vos réponses, bonne journée à tous

Billou_13
Bask En Force

6 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
3 févr. 2005 à 12:18
Tu peux t'inspirer de cette source :



http://www.csharpfr.com/code.aspx?id=28268


Mx
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
3 févr. 2005 à 14:16
Merci je vais aller voir ça de suite !

Billou_13
Bask En Force
0
-Eric40- Messages postés 5 Date d'inscription vendredi 29 septembre 2023 Statut Membre Dernière intervention 1 novembre 2023
20 oct. 2023 à 15:39

Bonjour,

le lien est mort (depuis 2005, c'est sûrement normal)

Bon, de ce que j'ai lu, on peut passer un objet et un seul en paramètre, au lancement du thread, ok

A part des variables globales, il y a-t-il (maintenant) possibilité de communiquer avec le thread ? 

Par exemple, je surveille et acquiers des données sur une ligne hard, que je ne peux interrompre sans risque de perdre des données qui arrivent en permanence (acquisition par DMA bouclé), je cumule ces données dans des blocs de 64K (4 blocs tournants) et quand un des bloc est plein, je voudrais (pendant que je continue l'acquisition dans les autres) indiquer à un thread (au travers une exception) de l'enregistrer sur le HDD puis de libérer ce bloc. Comment partager ces blocs et les indicateurs de (libre, occupé, plein) ? est-ce forcément en global ?

je souhaite aussi indiquer au thread que ce n'est plus la peine d'attendre, j'ai arrêté l'acquisition des données, je voudrais alors demander au thread qu'il s'arrête. Le "abort()", est exclu (et il me semble qu'il n'est plus supporté), en effet, il ne permettrait pas d'enregistrer les dernières données des blocs.

Merci de vos réponses et bonne journée

0

Bonjour

"Bon, de ce que j'ai lu, on peut passer un objet et un seul en paramètre, au lancement du thread, ok" ça dépend du type de thread.


"indiquer à un thread (au travers une exception) de l'enregistrer sur le HDD puis de libérer ce bloc"

A travers une exception c'est une mauvaise idée, normalement ça va planter le thread.


Globalement, il faut choisir le type de thread le mieux adapté à ta demande.

C'est un ratio facilité d'utilisation / priorité du thread / vitesse.

A quelle cadence tourne ta boucle d'acquisition?

Quelle priorité doit avoir ce thread?

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
-Eric40- Messages postés 5 Date d'inscription vendredi 29 septembre 2023 Statut Membre Dernière intervention 1 novembre 2023
1 nov. 2023 à 16:32

J'ai résolu mon problème 

j'avais un message de 10 à 512 mots de 16 bits toutes les 16ms avec une moyenne de 128 mots/message

j'ai réduit mes blocs à 4k (1 cluster), 4 blocs tournants, cela convient parfaitement avec ma l'équipement dont je dispose.

On en apprends tous les jours, et ce n'est pas fini.

Je viens de faire des simulations, cela fonctionne, j'ai même de la marge

Merci pour ton aide, je marque "résolu"

0
-Eric40- Messages postés 5 Date d'inscription vendredi 29 septembre 2023 Statut Membre Dernière intervention 1 novembre 2023
1 nov. 2023 à 16:33

Ah bah non, je ne mets pas résolu, je ne suis pas à l'origine de ce post 

0
Rejoignez-nous