Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1442 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Methode static

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Methode static

n°1881003
korben31
Posté le 05-05-2009 à 11:12:40  profilanswer
 

Bonjour
je vais prendre un exemple ca sera plus explicite
 

Code :
  1. /// <summary>
  2.         /// Retourne la liste complete des supplier
  3.         /// </summary>
  4.         /// <returns>retourne null si vide</returns>
  5.         public static List<Project.Common.Supplier> GetAll()
  6.         {
  7.             if (Context.Current.ProjectDataContext != null)
  8.             {
  9.                 var s_suppliers = from supplier in Context.Current.ProjectDataContext.Suppliers
  10.                                                  select supplier;
  11.                 if (s_suppliers != null)
  12.                 {
  13.                     List<Project.Common.Supplier> listSupplier = new List<Project.Common.Supplier>();
  14.                     foreach (Project.DAL.Supplier s in s_suppliers)
  15.                     {
  16.                         listSupplier.Add(new Project.Common.Supplier(s.Company.CompanyName, s.SupplierId));
  17.                     }
  18.                     return listSupplier;
  19.                 }
  20.                 else
  21.                     return null;
  22.             }
  23.             else throw new DatabaseOfflineException();
  24.         }


 
La question que je me pose c'est si deux personne en meme temps lance la méthode, est ce que ca poserai pas probleme etant donner que les variables sont les meme pour tous du coup ?
Comment resoudre le probleme ? Lock ? ou degager le static ?
( j'utilise a peu pres la meme technique pour les update and insert )

mood
Publicité
Posté le 05-05-2009 à 11:12:40  profilanswer
 

n°1881076
kao98
...
Posté le 05-05-2009 à 14:19:58  profilanswer
 

Comment plusieurs personnes pourraient exécuter ce bout de code en même temps ?
C'est pas du compilé ?
Plusieurs utilisateurs lancent le même exécutable ? Même là ce ne serait pas possible, les instance du programme seraient tourneraient dans des contextes d'exécution différents.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1881110
Tamino
master proxy 2 gates
Posté le 05-05-2009 à 16:17:23  profilanswer
 

kao98 a écrit :

Comment plusieurs personnes pourraient exécuter ce bout de code en même temps ?
C'est pas du compilé ?
Plusieurs utilisateurs lancent le même exécutable ? Même là ce ne serait pas possible, les instance du programme seraient tourneraient dans des contextes d'exécution différents.


 
Ou plus simplement plusieurs thread dans une même application? Si c'est le cas et pour répondre à la question d'origine alors oui, les solutions sont la gestion manuelle de la concurrence d'accés avec un lock (me semble qu'il y a un attribut .net a appliquer à la méthode pour pas gérer ça manuellement, me souviens plus trés bien), ou plus simple rendre la méthode non statique mais alors il faut aussi qu'elle cesse de travailler sur des variables statiques (ou globales) et seulement sur des variables membres non statiques. Le choix de l'une au l'autre solution dépend surtout de l'importance que ton appli accorde ou non au fait que tous les threads travaillent avec les mêmes données.

n°1881171
kao98
...
Posté le 05-05-2009 à 18:44:45  profilanswer
 

J'y avais pensé, mais si c'était le cas, il l'aurait mentionné.
 
Plusieurs utilisateurs != plusieurs thread.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1883242
Tamino
master proxy 2 gates
Posté le 11-05-2009 à 16:59:07  profilanswer
 

kao98 a écrit :

J'y avais pensé, mais si c'était le cas, il l'aurait mentionné.
Plusieurs utilisateurs != plusieurs thread.


 
Un site web asp.net? Et ma réponse ne vaut effectivement que pour plusieurs threads lancés depuis un même exécutable. Il parle qd même de variables qui "seraient les mêmes pour tous", ce qui n'a pas de sens si ya d'autant d'exe que d'utilisateurs :). Enfin faudrait qu'il nous éclaire.


Message édité par Tamino le 11-05-2009 à 16:59:33

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Methode static

 

Sujets relatifs
Méthode POST et construction d'une URL[Résolu] Variable non static depuis une méthode static,Php/Java bridge
[Resolu][C#.NET] Appel methode static impossible ?Mapping d'une méthode static vers Delphi
Methode static dans une classsynchronisation de méthode static
Méthode "static" et paramètrescomment récuperer l'adresse d'un objet à partir d'un methode (static)
[java] Methode et champs static[VC++] methode virtual et static a la fois
Plus de sujets relatifs à : Methode static


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR