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 содержит Locked свойство, указывающее, заблокирована ли коллекция диспенсера переменных (true
) или разблокирована (false
). Причина проверки этого свойства заключается в том, что некоторые задачи явно освобождают блокировки для переменных, которые они используют, и при вызове Unlock дважды возникает ошибка. Поэтому перед вызовом Unlockследует использовать Locked свойство, определяющее, заблокирована ли разблокированная коллекция.