Share via


Variables.Unlock Méthode

Définition

Libère les verrous sur la collection de variables et signale un état de la collection de variables non valide ou inconnu.

public:
 void Unlock();
public void Unlock ();
member this.Unlock : unit -> unit
Public Sub Unlock ()

Exemples

L’exemple de code suivant verrouille la collection de variables lorsqu’elle GetVariables est appelée. L’exemple vérifie ensuite si la collection est verrouillée et, le cas échéant, appelle Unlock.

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  

namespace Microsoft.SqlServer.SSIS.Sample  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  
            Variables vars = null;  
            VariableDispenser variableDispenser = pkg.VariableDispenser;  
            variableDispenser.LockForRead("System::PackageName");  
            variableDispenser.LockForRead("System::OfflineMode");  
            variableDispenser.LockForWrite("System::InteractiveMode");  
            variableDispenser.GetVariables(ref vars);             
            // Determine whether the variable collection is locked before unlocking.  
            Boolean isLocked = vars.Locked;  

            // Verify the value of vars.Locked. If the lock failed,  
            // call Reset.  
            if (isLocked)  
            {  
                vars.Unlock();  
            }  
            else  
            {  
                variableDispenser.Reset();  
            }  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Microsoft.SqlServer.SSIS.Sample  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As Package =  New Package()   
            Dim vars As Variables =  Nothing   
            Dim variableDispenser As VariableDispenser =  pkg.VariableDispenser   
            variableDispenser.LockForRead("System::PackageName")  
            variableDispenser.LockForRead("System::OfflineMode")  
            variableDispenser.LockForWrite("System::InteractiveMode")  
            variableDispenser.GetVariables( vars)  
            ' Determine whether the variable collection is locked before unlocking.  
            Dim isLocked As Boolean =  vars.Locked   

            ' Verify the value of vars.Locked. If the lock failed,  
            ' call Reset.  
            If isLocked = True Then  
                vars.Unlock()  
            Else   
                variableDispenser.Reset()  
            End If  
        End Sub  
    End Class  
End Namespace  

Remarques

Cette méthode est utilisée pour déverrouiller des variables verrouillées à l’aide de la VariableDispenser classe. Lorsqu’une VariableDispenser collection de variables est distribuée, elle effectue le suivi de la collection dans une liste. Lorsque la tâche appelée distributeur de variables se termine en cours d’exécution, toutes les collections distribuées sont automatiquement déverrouillées. Par conséquent, si le déverrouillage automatique convient à vos besoins et si le déverrouillage automatique s’est produit une fois la tâche terminée, vous n’avez pas besoin d’appeler la Unlock méthode. Toutefois, il est parfois souhaitable de déverrouiller les variables dès que possible pour des raisons de performances. Un appel explicite à cette Unlock méthode déverrouille les variables.

La Locked propriété retourne une valeur indiquant false qu’une collection distribuée a déjà été déverrouillée. Une valeur indiquant true que la collection de variables est toujours verrouillée. L’appel Unlock deux fois provoque une erreur ; par conséquent, dans certaines situations, vous devrez peut-être vérifier la valeur de cette propriété avant de décider s’il faut appeler Unlock.

S’applique à