begin process at 2010 02 09 15:31:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Process

 > 

Thread erreur


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

Thread erreur

lundi 4 février 2008 à 12:35:42 | Thread erreur

chris31500

Bonjour,

je bloque sur un problème tout bete d'accès multi thread :

J'ai une interruption RS422 qui appelle une méthode qui doit modifier un databinding source.

Chacun de ces 3 éléments est dans un fichier/classe différent. Voici ma méthode qui modifie la variable (dans timerdash) :

void ajouter_tiroir(CDefDiscret discretTmp)

{

int indexObj = -1;

for (int k = 0; k < liste_tiroir.Count; k++)

{

if (((CDefDiscret)(liste_tiroir[k])).NomSignal == discretTmp.NomSignal)
   indexObj = k;

}

if (indexObj == -1)
   liste_tiroir.Add(discretTmp);

else
   liste_tiroir[indexObj] = discretTmp;

}

C'est donc liste_tiroir.Add qui me pose problème à l'exécution, me disant qu'il y a un accès multithread.
En effet, liste_tiroir est déclaré dans ma classe principale. Et je l'injecte dans ma méthode de la sorte :

timerDashConnection.liste_tiroir =

this.cDiscretTiroirBindingSource;

avec timerdash, qui contient les méthodes de timerdash.

J'ai tenté de faire des invoke, mais je n'ai même pas la propriété disponible quand je tappe : "this."

Ce n'est pas très clair, mais mon programme est énorme, je ne peux donc pas tout mettre.

J'espère que quelqu'un pourra m'aider.

J'ai parcouru tous les forums du web francophone, et je ne trouve rien pour m'aider.
J'espère trouver ici ma réponse.

Je préviens également, je ne suis pas développeur de formation, mais électronicien. Je développe en ce moment un programme en C#, que j'ai repris d'un collègue (informaticien) parti de la société. Autant dire que c'est pas évident.

Merci par avance pour votre aide.
lundi 4 février 2008 à 13:07:35 | Re : Thread erreur

SharpMao

Membre Club
Hello, et bienvenue sur le forum.

Tu parles d'une interruption RS422, est-ce que ça te semble possible que deux de ces interruptions arrivent dans un temps très court ?

Essaie peut-être comme ça :

void ajouter_tiroir(CDefDiscret discretTmp) 
{
int indexObj = -1;

lock(liste_tiroir)
{
for
(int k = 0; k < liste_tiroir.Count; k++)
{
if (((CDefDiscret)(liste_tiroir[k])).NomSignal == discretTmp.NomSignal)
   indexObj = k;
}
if (indexObj == -1)
   liste_tiroir.Add(discretTmp);
else
   liste_tiroir[indexObj] = discretTmp;
}
}

C'est sans aucune garantie, mais j'espère que ça marcheras.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
lundi 4 février 2008 à 14:03:48 | Re : Thread erreur

chris31500

Pas mal tenté, mais ça ne change absolument rien :(

Sinon, j'ai une interruption traitée toute les secondes. Ce qui laisse largement le temps de décoder le message.

 

Une autre solution ?.

lundi 4 février 2008 à 14:45:45 | Re : Thread erreur

chris31500

Si ça peut aider à comprendre mon besoin :

je souhaite créer une variable complexe dans mon programme principal, la modifier grace à une méthode externe à la classe (appelée par interruption) puis la lire dans mon programmme principal . Le invoke a l'air adapté, mais je n'arrive pas du tout à le mettre à l'oeuvre, et j'ai lu le tutotirel du site.


Cette discussion est classée dans : liste, thread, tiroir, discrettmp, indexobj


Répondre à ce message

Sujets en rapport avec ce message

Thread qui créé des fenêtes [ par bubbathemaster ] Bonjour,J'ai un thread qui créé des fenêtres. Ces fenêtes sont ajoutées dans une liste de forms pour que je garde trace de leur créations. Le truc c'e Algorithme performant croisement fichier Email [ par vladam ] Bonjour,   J'ai deux fichiers texte, avec dans chacuns d'eux une liste de mail. Le premier est la liste complète de mes abonnés (newsletter) et le sec Tableau, liste ou liste de structures? [ par LordOfTheShadow ] Hello!!! Joyeux Noel à tous les geeks ;-)Sujet: J'ai une classe qui s'appele Interpolation. Dans cette classe j'ai une fonction. Cette fonction doit c Null Reference Exception après un refresh , une idée ? [ par Metadeth ] Bonjour à tous.Vu que c'est mon premier message sur ce forum, j'en profite pour me présenter, : Metadeth, développeur Web à la base. Dans le cadre de Unhandled Thread Exception [ par Lutinore ] Salut..protected override void OnClick( EventArgs e ) // Click sur une forme.{    //base.OnClick( e );     try    {        Thread t = new Thread( ne Débutant Thread [ par LordOfTheShadow ] Bonjour tout le monde,J'ai créer plusieurs usercontrols avec une methode Actualiser( ). Je voudrai créer un thread dans un formulaire qui appel la met [C#][ActiveX] Multi-thread dans un ActiveX ? [ par nic0z ] Bonjour, J'aimerai utiliser le multi-thread dans mon ActiveX pour effectuer un traitement assez lourd. Le problème, c'est que lorsque je réalise cel ouvrir outlook avec liste d'adresse [ par spirit33 ] Bonjour,Je m'en remet à vous car après plusieurs heures de recherches, je n'ai toujours pas trouver de réponse adéquate.Voila, mon soucis c'est que j' Récupérer des fichiers : RESOURCES Assembly System.Reflexion [ par patdan ] Bonjour,Je galère depuis plusieurs jours et j'ai trouvé bcp de sujets qui tournent autour de mon problème, mais rien qui me permette de comprendre.Voi WPF / Valeur par défaut et binding [ par mastoc ] Bonjour !La question est la suivante : Est-il possible de binder une comboBox à une liste d'objet tout en gardant des valeurs par défaut. Sinon, y'a t


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,437 sec (4)

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