Variables.Locked 속성

정의

컬렉션의 변수 Variables 가 잠겨 있는지 여부를 나타내는 부울입니다.

public:
 property bool Locked { bool get(); };
public bool Locked { get; }
member this.Locked : bool
Public ReadOnly Property Locked As Boolean

속성 값

true는 컬렉션이 잠겨 있음을 나타냅니다. false 값은 컬렉션이 잠금 해제되었음을 나타냅니다.

예제

다음 코드 예제에서는 호출할 때 GetVariables 변수 컬렉션을 잠가 집니다. 그런 다음 컬렉션이 잠겨 있는지 여부를 확인하고 컬렉션이 잠겨 있으면 호출 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  

설명

컬렉션에는 Variables 변수의 변수 디스펜서 컬렉션이 잠겨 있는지() 잠금 해제되었는지(true) 나타내는 속성이false 포함되어 Locked 있습니다. 이 속성을 검토하는 이유는 일부 태스크가 사용 중인 변수에 대한 잠금을 명시적으로 해제하고 두 번 호출 Unlock 하면 오류가 throw되기 때문입니다. 따라서 호출Unlock하기 전에 디스펜싱된 컬렉션이 잠겨 있는지 여부를 결정하는 속성을 사용해야 Locked 합니다.

적용 대상