none
Lock an object RRS feed

  • Question

  • Bonjour

    Je voudrai poser un verrou sur un objet et retourner l'identifiant de celui qui a locké l'object,

    si l'objet est non lockeé , je retourne null

    code

     public Guid Verrouillage(string number, Guid User)
            {
                lock (this)
                {
                    //  Locker un objet de type Commande            }
    
                // locker le dossier
                return User;
            }

    • Déplacé Mike Dos Zhang jeudi 9 février 2012 00:40 Please use this France C# forum, it is not a Windows Form question(English) (Origine :Windows Forms General)
    mercredi 8 février 2012 15:50

Réponses

  • Bonjour,

    Il suffit tout simplement passer par un dictionnaire qui contient les commandes qui sont verrouillées ainsi que le responsable du verrouillage :

            private IDictionary commandesLocked = new Dictionary();
    
            public Guid Verrouillage(string number, Guid User)
            {
                lock (this.commandesLocked)
                {
                    //  Locker un objet de type Commande  
                    Guid userLocked;
                    if (this.commandesLocked.TryGetValue(number, out userLocked) == true)
                    {
                        // L'utilisateur "userLocked" a déjà verrouillé la commande
                        // ...
                    }
                    else
                    {
                        // Verrouiller la commande
                        this.commandesLocked.Add(number, User);
                    }
                }
    
                // locker le dossier
                return User;
            }

    Au passage, ne faite jamais de lock(this).

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5


    jeudi 9 février 2012 10:45
    Modérateur