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.