Variables.Unlock 方法

定义

释放变量集合的锁并将变量集合的状态标记为无效或未知。

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之前检查此属性的值。

适用于