Variables.Unlock 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
변수 컬렉션에 대한 잠금을 해제하고 변수 컬렉션의 상태에 유효하지 않음 또는 알 수 없음 플래그를 지정합니다.
public:
void Unlock();
public void Unlock ();
member this.Unlock : unit -> unit
Public Sub Unlock ()
예제
다음 코드 예제에서는 호출 될 때 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
설명
이 메서드는 클래스를 사용하여 잠긴 변수의 잠금을 해제하는 VariableDispenser 데 사용됩니다. VariableDispenser 변수 컬렉션을 분배하면 목록의 컬렉션을 추적합니다. 변수 디스펜서를 호출한 작업이 실행을 마치면 모든 디스펜싱된 컬렉션이 자동으로 잠금 해제됩니다. 따라서 자동 잠금 해제가 목적에 적합하고 작업이 완료될 때 자동 잠금 해제가 발생한 경우 메서드를 호출 Unlock 할 필요가 없습니다. 그러나 성능상의 이유로 가능한 한 빨리 변수의 잠금을 해제하는 것이 바람직한 경우가 있습니다. 이 Unlock 메서드에 대한 명시적 호출은 변수의 잠금을 해제합니다.
이 속성은 Locked 디스펜싱된 컬렉션이 false
이미 잠금 해제되었음을 나타내는 값을 반환합니다. 값은 true
변수 컬렉션이 여전히 잠겨 있음을 나타냅니다. 두 번 호출 Unlock 하면 오류가 발생하므로 특정 상황에서 호출 Unlock여부를 결정하기 전에 이 속성의 값을 확인해야 할 수 있습니다.