Freigeben über


VariableDispenser.Reset Methode

Definition

Bereinigt sowohl die Liste für schreibgeschützten Zugriff als auch die Liste für Lese-/Schreibzugriff, wenn beim Aufruf von GetVariables(Variables) ein Fehler auftritt.

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

Beispiele

Im folgenden Codebeispiel wird eine Auflistung von Variablen gesperrt und anschließend bestimmt, ob die Variablensammlung gesperrt ist, bevor sie entsperrt werden. Wenn die Sperre fehlgeschlagen ist, wird sie Reset aufgerufen.

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.GetVariables(ref vars);             
            // Determine whether the variable collection is locked.  
            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.GetVariables( vars)  
            ' Determine whether the variable collection is locked.  
            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  

Hinweise

Diese Methode kann verwendet werden, um die schreibgeschützte Liste und die Lese-/Schreibsperrliste zu löschen, nachdem ein Aufruf GetVariables fehlgeschlagen ist. Wenn ein Aufruf GetVariables fehlschlägt, werden die Sperrlisten nicht gelöscht, und wenn Sie erneut aufrufen GetVariables , wird versucht, dieselben Variablen zu sperren. Wenn Sie erneut versuchen möchten, dieselben Variablen zu sperren, rufen Sie erneut auf, ohne zuerst zu aufrufen GetVariablesReset . Oder Sie können die Listen mithilfe dieser Methode freigeben und den Vorgang verlassen, bis alle erforderlichen Variablen verfügbar sind und gleichzeitig gesperrt werden können.

Darüber hinaus wird die Reset Methode verwendet, wenn Sie einen Fehler GetVariables erhalten und eine völlig andere und nicht verbundene Gruppe von Variablen als nächstes sperren möchten. Sie würden aufrufenReset, um die Sperrlisten zu löschen, und füllen Sie dann die Sperrlisten mithilfe der LockForReadMethoden , LockOneForReadLockForWriteund LockOneForWrite methoden erneut aus.

Gilt für: